lintcode-螺旋矩阵 II
2016-09-02 10:55
351 查看
给你一个数n生成一个包含1-n^2的螺旋形矩阵
样例
n = 3
矩阵为
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]
样例
n = 3
矩阵为
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]
class Solution { public: /** * @param n an integer * @return a square matrix */ vector<vector<int> > generateMatrix(int n) { // Write your code here vector<vector<int> > vec(n,vector<int>(n,0)); if(n<=0) return vec; int row=n;//行数 int col=n;//列数 int left=0,top=0;//左上角坐标(left,top) int bottom=row-1,right=col-1;//右下角坐标(bottom,right) int k=1; while(left<=bottom && top<=right) { for(int i=top;i<=right;i++) vec[left][i]=k++;//从左到右打印 for(int i=left+1;i<=bottom;i++) vec[i][right]=k++;//从上到下打印 if(left!=bottom) for(int i=right-1;i>=top;i--) vec[bottom][i]=k++;//从右往左打印 if(top!=right) for(int i=bottom-1;i>left;i--) vec[i][top]=k++;//从左向上打印 left++; top++; bottom--; right--; } return vec; } };
相关文章推荐
- LintCode算法题解
- LintCode Majority Number iii
- LintCode-最大数
- lintCode Intersection of Two Arrays II
- Intersection of Two Arrays
- Subtree
- LintCode
- 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)
- lintcode之不同子序列数 + 序列II
- lintcode之快速幂
- lintcode删除排序数组中的重复数字 II
- lintcode之数组划分
- leetcode之三数之和 II
- lintcode之 数组剔除元素后的乘积
- lintcode之 合并排序数组 II
- lintcode 之子数组之和