大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。
问题叙述性说明:
Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.
For example,
Given n = 3
,
You should return the following matrix:
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]
基本思路:
本题是上一篇《Spiral Matrix》的变形。能够採用相同的遍历方法为其赋值。创建旋转矩阵。
代码:
vector<vector<int> > generateMatrix(int n) { //C++ vector<vector<int> >result; if(n <=0 ) return result; for(int i = 0; i < n; i++){ vector<int> tmp(n,0); result.push_back(tmp); } int rowBegin = 0; int rowEnd = n-1; int colBegin = 0; int colEnd = n-1; int count = 1; while(rowBegin <= rowEnd && colBegin <= colEnd){ //to right for(int j = colBegin; j <= colEnd; j++) result[rowBegin][j] =count++; rowBegin++; //to down for(int j = rowBegin; j <= rowEnd; j++) result[j][colEnd] = count++; colEnd--; //to left if(rowBegin <= rowEnd){ for(int j = colEnd; j >= colBegin; j--) result[rowEnd][j] = count++; } rowEnd--; //to up if(colBegin <= colEnd){ for(int j = rowEnd; j >= rowBegin; j--) result[j][colBegin] = count++; } colBegin++; } return result; }
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/116707.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...