LintCode-剑指Offer-(374)螺旋矩阵
2015-11-29 13:22
363 查看
class Solution { public: /** * @param matrix a matrix of m x n elements * @return an integer array */ vector<int> spiralOrder(vector<vector<int>>& matrix) { // Write your code here vector<int> tmpint; if (matrix.size()==0)return tmpint; bool ** visited; visited = new bool *[matrix.size()]; for (int i = 0;i<matrix.size();i++){ visited[i] = new bool[matrix[i].size()]; for (int j = 0;j<matrix[i].size();j++){ visited[i][j] = false; } } int dx[4] = {1,0,-1,0}; int dy[4] = {0,1,0,-1}; int dxyloc = 0; int ii = 0; int jj = 0; while (true) { if (ii==-1||jj==-1||ii==matrix.size()||jj==matrix[0].size()||visited[ii][jj]==true){ ii = ii-dy[dxyloc]; jj = jj-dx[dxyloc]; dxyloc = (dxyloc+1)%4; if (visited[ii+dy[dxyloc]][jj+dx[dxyloc]]==true){ return tmpint; } } else{ tmpint.push_back(matrix[ii][jj]); visited[ii][jj] = true; } ii = ii+dy[dxyloc]; jj = jj+dx[dxyloc]; } } };
相关文章推荐
- LintCode-最大数
- Subtree
- LintCode --number-of-airplanes-in-the-sky(数飞机)
- LintCode --invert-binary-tree(翻转二叉树)
- LintCode --find-the-missing-number(寻找缺失的数)
- LintCode--best-time-to-buy-and-sell-stock(买卖股票的最佳时机)
- LintCode--best-time-to-buy-and-sell-stock-ii(买卖股票的最佳时机 II)
- 中位数 21% 通过 给定一个未排序的整数数组,找到其中位数。 中位数是排序后数组的中间值,如果数组的个数是偶数个,则返回排序后数组的第N/2个数
- LintCode 翻转二叉树
- LintCode 寻找缺失的数
- Lintcode 二叉树的后序遍历
- Lintcode 二叉树中序遍历
- Lintcode 二叉树前序遍历
- Lintcode 尾部零的个数
- Lintcode 比较字符串
- Lintcode 主元素
- Lintcode解题笔记 - 岛屿的个数
- LintCode -合并两个排序链表
- 20150708 lintcode 总结 Binary Tree Maximum Path Sum Show result *****
- 20150708 lintcode 总结 Minimum Path Sum