Spiral Matrix II
来源:互联网 发布:淘宝api下载 编辑:程序博客网 时间:2024/05/16 19:13
-----QUESTION-----
Given an integer
For example,
Given 3
,
[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ]]
-----SOLUTION-----
class Solution {public: vector<vector<int> > generateMatrix(int n) { vector<vector<int> > result(n, vector<int>(n,0)); leftPos = 0; rightPos = n-1; topPos = 0; bottomPos = n-1; currentNum = 1; goWider(result,true); return result; } void goWider(vector<vector<int> > &matrix, bool direct) { if(direct) { for(int i = leftPos; i<= rightPos; i++) { matrix[topPos][i] = currentNum++; } topPos++; if(topPos > bottomPos) return; goDeeper(matrix, true); } else { for(int i = rightPos; i>= leftPos; i--) { matrix[bottomPos][i] = currentNum++; } bottomPos--; if(topPos > bottomPos) return; goDeeper(matrix, false); } } void goDeeper(vector<vector<int> > &matrix, bool direct) { if(direct) { for(int i = topPos; i<= bottomPos; i++) { matrix[i][rightPos]=currentNum++; } rightPos--; if(leftPos > rightPos) return; goWider(matrix, false); } else { for(int i = bottomPos; i>= topPos; i--) { matrix[i][leftPos] = currentNum++; } leftPos++; if(leftPos > rightPos) return; goWider(matrix, true); } }private: int currentNum; int leftPos; int rightPos; int topPos; int bottomPos;};
0 0
- Spiral Matrix && Spiral Matrix II
- LeetCode: Spiral Matrix II
- LeetCode Spiral Matrix II
- [Leetcode] Spiral Matrix II
- LeetCode : Spiral Matrix II
- Spiral Matrix II
- [LeetCode] Spiral Matrix II
- Spiral Matrix II
- Spiral Matrix II
- [LeetCode]Spiral Matrix II
- Spiral Matrix II
- Spiral Matrix I(II)
- Spiral Matrix II
- [leetcode]Spiral Matrix II
- LeetCode-Spiral Matrix II
- [leetcode] Spiral Matrix II
- LeetCode - Spiral Matrix II
- Spiral Matrix II
- TCP 的那些事儿(上)
- eclipse修改workspace的方法(转)
- JavaEE开发四大常用框架
- js 获取取链接根节点名
- 移动互联网白皮书(2014)
- Spiral Matrix II
- LeetCode-Search in Rotated Sorted Array
- 防止重复提交java解决
- OC 复合
- 进程与线程
- 文本框输入完毕后,点击Enter触发按钮Click事件
- 黑马程序员--【学习日记五】——多线程
- 斯坦福大学公开课:iOS 7应用开发 (一)
- MySQL相关——局域网访问MySQL服务