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

婚介做网站的好处做公司集团网站

婚介做网站的好处,做公司集团网站,游戏开发大亨最佳搭配,六安马昌友题目链接:6. Z 字形变换 - 力扣(LeetCode) 普通版本(二维矩阵的直接读写) 解决办法:直接依据题目要求新建并填写一个二维数组,最后再将该二维数组中的有效字符按从左到右、从上到下的顺序读取并…

题目链接:6. Z 字形变换 - 力扣(LeetCode)

普通版本(二维矩阵的直接读写)

解决办法:直接依据题目要求新建并填写一个二维数组,最后再将该二维数组中的有效字符按从左到右、从上到下的顺序读取并放到新数组中 

分析1:当我们在矩阵上填写字符时,会先向下填写 r 个字符,然后向右上继续填写 r−2 个字符,最后回到第一行

结论1:Z 字形变换的周期 t = r + r − 2 = 2r − 2(一个残缺的斜着的v),每个周期会占用矩阵上的1 + (r - 2)= r − 1列

结论2:总周期数 = n(总字符数)/  t(向上取整)总列数c = (n / t) * (r - 1)

结论3:新建二维数组的行数为r,列数为c

填写操作:设当前填写的位置为(x,y),即矩阵的第 x 行的第 y 列,初始 (x,y)=(0,0)(矩阵左上角)若当前字符下标 i 满足 i  mod  t < r − 1,则向下移动,否则向右上移动

class Solution {
public:string convert(string s, int numRows) {int n = s.length(), r = numRows;if (r == 1 || r >= n) {return s;}int t = r * 2 - 2;//一个周期中的个数//一个周期中的列数 = (r - 1)int c = (n + t) / t * (r - 1);//总列数 = 周期个数 * 一个周期的列数,周期个数 =  总个数 / 一个周期中的个数//如果总个数只是单纯的n的话,可能会导致不满一个周期的字符不被计算在内,且不被算在内的情况有多1、2、3个三种情况//而我们只需要在一个完整的总个数中再加上一个周期的个数即可,这样就可以将多出来的元素也算入一个新周期,尽管可能有空位但无所谓了vector<string> mat(r, string(c, 0));//创建一个r行、每行长度为c(即c列)的二维字符串数组mat,并初始化每个位置的字符为0for (int i = 0, x = 0, y = 0; i < n; ++i) //先从二维数组的左上角开始填写,先填写后判断下一次要填写的方向{//因为是先插入后判断的,所以判断时已经插入一个了,因此能继续向下移动的次数为r-1次mat[x][y] = s[i];if (i % t  < r - 1 ) //下标i是逐渐递增,因此要%t,重新映射原字符串中下标为i的字符在新周期中的位置(相当于在新周期中已经走了几次了){//已经走的次数要小于该周期中向下可以走的次数-1,否则就是向右上走++x; // 向下移动} else{   --x;++y; // 向右上移动}}string ans;//遍历二维数组,将非空的位置的字符插入新stringfor (auto &row : mat) {for (char ch : row) {if (ch) {ans += ch;}}}return ans;}
};

时间复杂度:O(N)(创建数组的时间复杂度为O(r * c),填充数组的时间复杂度为O(N),构造最最终结果的时间复杂度为O(r * c),由于 r * cn 都是输入规模 n 的线性函数,我们可以认为时间复杂度是 O(n))

空间复杂度:O(N)string ans 用来存储结果字符串,占用了 O(n) 的空间

优化版本(压缩矩阵空间,待补充)

优化版本(直接构造,待补充)

~over~

http://www.yayakq.cn/news/535058/

相关文章:

  • 全球设计网站凡拓数创
  • 网站租用服务器天津地铁建设网站
  • 找代做海报的网站新手如何开微商城店
  • 怎么用网站源码建站城市分站seo
  • 响应式网站开发哪个好学网站开发网页制作
  • 建筑业招聘网站电商网站建设机构
  • 网站攻击一般有那些群晖frp 外网访问wordpress
  • 济南网站建设公司熊掌号室内设计学校广州
  • 许昌大成建设集团网站建设资讯网站
  • 专题网站建设工作做阿里网站的分录
  • 自己如何建设企业网站小程序模板
  • 中国空间站建造历程wordpress文章页修改
  • 黑龙江省住房和建设厅网站首页深圳宣传片制作服务
  • 像做游戏一样编程的网站企业通过门户网站做营销推广
  • 义乌搭建网站做网站用的幻灯片大小
  • 计算机应用技术网站开发基础知识帮平台做推广怎么赚钱
  • 环保网站策划书手机网站管理软件
  • 找什么公司做网站域名价格一览表
  • 做网站代运营如何寻找客户网站运营 开发
  • 公司网站域名和空间知识营销案例有哪些
  • 建站宝盒源代码天津制作网站公司
  • 百度做玻璃钢的网站口碑好的定制网站建设服务商
  • 手机网站建设哪家强wordpress整合主题
  • 做网站视频的赚钱吗东莞房价下跌最惨一览表
  • 路由器 东莞网站建设怎么做电商网站推广
  • php 网站发布中国企业500强最新排名
  • 网站外部链接动力无限做网站怎么样
  • 做网站的需要考什么证书吗天眼查 公司查询企业查询官网
  • 廊坊网站建设招聘抖音上的小程序怎么赚钱
  • 6东莞做网站孝感网站开发培训机构