leetcode 6 ZigZag Conversion
来源:互联网 发布:石川智晶 知乎 编辑:程序博客网 时间:2024/06/05 15:13
problem
https://leetcode.com/problems/zigzag-conversion/
方法1 模拟 68ms
class Solution {public: string convert(string s, int numRows) { if (numRows == 1) return s; const int numCols = (s.size()/(numRows-2 + numRows) +1) * (numRows-2+1); char m[numRows][numCols]; memset(m, 0, sizeof(m)); int dir = 0; int row = 0; int col = 0; for (int i=0; i< s.size(); i++) { m[row][col] = s[i]; if (dir == 0) { row++; }else{ row--; col++; } if (row == numRows) { dir = 1; row = numRows-2; col ++; } if (row == -1) { dir = 0; row = 1; col --; } } string res; for (int i=0; i< numRows; i++) for (int j=0; j< numCols; j++) if (m[i][j] != 0) res.push_back(m[i][j]); return res; }};
注意行最大值的估计。
方法2 找规律 16ms
class Solution {public: string convert(string s, int numRows) { if (numRows == 1) return s; string ret; int inter = 2*numRows -2; for (int i=0; i< numRows; i++) { int rinter = inter - 2*i; if (rinter == 0) rinter = inter; for (int j=i; j<s.size();) { ret+= s[j]; j+= rinter; rinter = inter -rinter; if (rinter == 0) rinter = inter; } } return ret; }};
0 0
- LeetCode 6 - ZigZag Conversion
- LeetCode 6: ZigZag Conversion
- LeetCode(6)ZigZag Conversion
- Leetcode【6】:ZigZag Conversion
- [leetcode 6] ZigZag Conversion
- LeetCode 6 ZigZag Conversion
- LeetCode(6) ZigZag Conversion
- [Leetcode] 6 - ZigZag Conversion
- LeetCode 6:《ZigZag Conversion》
- [leetcode 6] ZigZag Conversion
- LeetCode | #6 ZigZag Conversion
- [leetcode] 6 ZigZag Conversion
- leetCode #6 ZigZag Conversion
- leetcode 6 ZigZag Conversion
- leetcode-6 ZigZag Conversion
- leetcode 6 ZigZag Conversion
- LeetCode 6 - ZigZag Conversion
- leetcode 6ZigZag Conversion
- svn插件下载与eclipse集成
- Spring之JMS之接受消息
- 多点定位方法的讨论
- 如何自定View
- Map的底层实现
- leetcode 6 ZigZag Conversion
- 《常见算法和数据结构》元素排序(3)——洗牌算法
- js获取浏览器的版本信息
- 找出数组中出现次数超过一半或者超过1/3的元素
- Mesos的自恢复能力及其核心框架的docker执行思维
- 模拟银行家算法
- 连连看
- Spring之JMS之发送消息
- iOS拨打电话功能