leetcode #59 in cpp
来源:互联网 发布:宁德时代新能源知乎 编辑:程序博客网 时间:2024/04/29 07:02
Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.
For example,
Given n = 3
,
[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ]]
Solution:
I directly list 4 cases about how we proceed. The code is quite long but straightforward and clear.
Code:
class Solution {public: vector<vector<int>> generateMatrix(int n) { vector<vector<int>> res(n,vector<int>(n,0)); int cur_row = 0; int cur_col = 0; int upper_row = n-1; int lower_row = 0; int upper_col = n-1; int lower_col = 0; int count = 1; while(count<=n*n){ res[cur_row][cur_col] = count; if(cur_row == lower_row){//at the upper row if(cur_col == upper_col){//should turn down cur_row ++; }else{//should go right cur_col ++; } }else if(cur_col == upper_col){//at the right col if(cur_row == upper_row){//should turn left cur_col --; }else{//should go down cur_row ++; } }else if(cur_row == upper_row && upper_row != lower_row){//at the bottom if(cur_col != lower_col){//should go left cur_col --; }else{//should turn up cur_row --; } }else if(upper_col != lower_col){//cur_col == lower_col, at the left side if(cur_row != lower_row + 1){//can go up cur_row --; }else{//go right to the next submatrix cur_col ++; upper_row --; lower_row ++; upper_col --; lower_col ++; } } count++; } return res; }};
0 0
- leetcode #59 in cpp
- leetcode #12 in cpp
- Leetcode #13 in cpp
- Leetcode #14 in cpp
- leetcode %15 in cpp
- leetcode #16 in cpp
- leetcode #17 in cpp
- leetcode #18 in cpp
- leetcode #20 in cpp
- leetcode #21 in cpp
- leetcode #22 in cpp
- leetcode #23 in cpp
- leetcode #24 in cpp
- leetcode #25 in cpp
- leetcode #26 in cpp
- leetcode #27 in cpp
- leetcode #28 in cpp
- leetcode #29 in cpp
- 高性能MySql进化论(一):数据类型的优化_上
- 枚举全排列
- Button按下抬起状态
- 程序的编译过程
- 继承ListView实现弹性效果
- leetcode #59 in cpp
- HDU 1159 Common Subsequence(DP最长公共子序列)
- 【BZOJ2445】最大团【推公式】【中国剩余定理】【扩展Lucas】
- I00017 生成9开头的按位递减数
- Portal架构相关技术汇总
- 猎头们怎么看开源
- I’m Sure It Will Only Take You A Few Days To Code
- 顶尖程序员不同于常人的 5 个区别
- 程序员讨厌项目经理的5个原因