专业网站建设集团,阳江人才网,百度站内搜索的方法,潜江做网站文章目录 题目方法一#xff1a;二维数组缩圈填数字方法二#xff1a; 题目 方法一#xff1a;二维数组缩圈填数字 定义四个边界条件#xff0c;每转一圈#xff0c;把数值填进去#xff0c;然后缩小一圈#xff0c;直到不满足条件位置 结束循环条件可以是#xff1a; … 文章目录 题目方法一二维数组缩圈填数字方法二 题目 方法一二维数组缩圈填数字 定义四个边界条件每转一圈把数值填进去然后缩小一圈直到不满足条件位置 结束循环条件可以是 两种结束条件都可以但是一定要注意每次处理一条边界的范围 不能重复赋值 while(right left bom top){//结束转圈条件边界不满足//while(count n * n){//结束转圈条件填写数值到最大了 无需填了
class Solution {
//方法一 : 定义四个边界条件每转一圈就缩小一圈直到不满足条件位置public static int[][] generateMatrix(int n) {int[][] res new int[n][n];int left 0;int right n-1;int top 0;int bom n-1;int count 1;//计数器while(right left bom top){//结束转圈条件//while(count n * n){//结束转圈条件 两种结束条件都可以//上左闭右闭for(int i left;iright ; i){res[top][i] count;count;}//右 上开下闭for(int i top1;ibom ; i){res[i][right] count;count;}//下 左闭右开for(int i right-1;ileft ; i--){res[bom][i] count;count;}//左 下开上开for(int i bom-1;itop ; i--){res[i][left] count;count;}//缩小一圈 修改四个边界left;right--;top;bom--;}return res;}
}方法二