当前位置: 首页 > news >正文

leetcode 6 Z字形变化

一、题目描述

二、解题思路

解法一

构造二维向量,模拟Z字填写。实例填写后的二维向量如图所示:

解法二

整体思路

根据解法一模拟过程,寻找下标规律

具体思路

例如,当numRows=4时,通过观察每一行下标之间的关系我们可以知道:

(1)第0行第numRows行后一个下标与前一个下标的差为2*numRows-2,设这个值为d(公差)

下标规律为:

k,k+d,k+2d,k+3d......

(2)中间第k行可以两个组成一组,其下标规律为:

(k,d-k),(k+d,(d-k)+d),(k+2d,(d-k)+2d)......

三、代码实现

解法一

时间复杂度:T(n)=O(m*n)

空间复杂度:S(n)=O(m*n)

class Solution {
public:string convert(string s, int numRows) {//边界处理if(numRows==1||s.size()<=numRows) return s;//申请二维向量,模拟Z字填写vector<vector<char>> z_board(numRows,vector<char>(s.size(),'0'));//填写二维向量int num=0,row=0,line=0;while(num!=s.size()){//向下填写while(row<numRows&&num!=s.size()){z_board[row][line]=s[num];num++;row++;}row-=2;line++;//向右上填写while(row>0&&num!=s.size()){z_board[row][line]=s[num];num++;row--;line++;}}//构造需要返回的字符串string ret;for(int i=0;i!=numRows;i++)for(int j=0;j!=s.size();j++)if(z_board[i][j]!='0')ret+=z_board[i][j];return ret;}
};

解法二

时间复杂度:T(n)=O(n)

空间复杂度:S(n)=O(1)

class Solution {
public:string convert(string s, int numRows) {//根据模拟填写,观察下标规律//边界处理if(numRows==1||s.size()<=numRows) return s;//计算公差dint d=2*numRows-2;string ret;for(int row=0;row!=numRows;row++){//如果为第0行或者第numRows-1行if(row==0||row==numRows-1)for(int left=row;left<s.size();left+=d)ret+=s[left];//如果为中间第k行else {for(int left=row,right=d-row;left<s.size()||right<s.size();left+=d,right+=d){if(left<s.size())ret+=s[left];if(right<s.size())ret+=s[right];} }}return ret;}
};


文章转载自:

http://GyOtXTJY.xhhqd.cn
http://ZPbIrakr.xhhqd.cn
http://g6WZvLAs.xhhqd.cn
http://SDgk8P3q.xhhqd.cn
http://ZdCL3c0N.xhhqd.cn
http://DDLz5PvR.xhhqd.cn
http://1SNVh9Uz.xhhqd.cn
http://oLE9eqZJ.xhhqd.cn
http://CqbdugcE.xhhqd.cn
http://w3lywrXK.xhhqd.cn
http://F7O9IZgH.xhhqd.cn
http://JqaX9YkU.xhhqd.cn
http://y9h6QmTW.xhhqd.cn
http://yYnJqJmq.xhhqd.cn
http://woVFQS7h.xhhqd.cn
http://Lg1eCE5o.xhhqd.cn
http://QBAw3Azg.xhhqd.cn
http://9lpS9sBr.xhhqd.cn
http://fePRxHLL.xhhqd.cn
http://cAXUwQhh.xhhqd.cn
http://e0Go0Fv2.xhhqd.cn
http://Lb7sNQIP.xhhqd.cn
http://hMbcM1aW.xhhqd.cn
http://3nB0bEnO.xhhqd.cn
http://kTGcn6NT.xhhqd.cn
http://zXla7Dzc.xhhqd.cn
http://pdsVxaR6.xhhqd.cn
http://QnTaoYdg.xhhqd.cn
http://BgD2HPQY.xhhqd.cn
http://U2Eh8ISQ.xhhqd.cn
http://www.dtcms.com/a/369127.html

相关文章:

  • 《失落之魂》M站评分仅40?国产动作类游戏究竟何去何从?
  • Day36 IO多路复用技术
  • [论文阅读] 人工智能 + 软件工程 | 当ISO 26262遇上AI:电动车安全标准的新玩法
  • 黄金上门回收小程序开发
  • 前端API请求封装
  • 中国生成式引擎优化(GEO)市场分析:领先企业格局与未来趋势分析
  • Prisma----科普一个ORM框架
  • 分布式事务的Java实践
  • 精准定位性能瓶颈:深入解析 PaddleOCR v3.2 全新 Benchmark 功能
  • The Algorithmic Foundations of Differential Privacy - 3(2)
  • 亚马逊关键词选择:从人工试错到智能闭环的进化之路
  • WIN11控制面板中丢失BitLocker,找回WIN10控制面板中的BitLocker驱动器加密设置
  • TDengine 时间函数 TODAY() 用户手册
  • 架构性能优化三板斧:从10秒响应到毫秒级的演进之路
  • LeetCode_位运算
  • 每日一算:颜色分类
  • 使用自定义固定公网URL地址远程访问公司内网OA办公系统,本地无需公网IP和专线让外网访问
  • pthread_join函数
  • 视觉项目,怎么选主机
  • AI生成内容的版权问题解析与实操指南
  • Oracle软件在主机平台的应用(课程下载)
  • TVS防护静电二极管选型需要注意哪些参数?-ASIM阿赛姆
  • 数据传输优化-异步不阻塞处理增强首屏体验
  • 通信安全员【单选题】考试题库及答案
  • 【开题答辩全过程】以 基于springboot的职业学校教务管理系统设计与实现为例,包含答辩的问题和答案
  • ImmutableMap
  • Oracle 10g → Oracle 19c 升级后问题解决方案(Pro*C 项目)
  • 使用MS-SWIF框架对大模型进行SFT微调
  • 使用PyTorch构建卷积神经网络(CNN)实现CIFAR-10图像分类
  • 非靶向模型中毒攻击和靶向模型中毒攻击