您的位置:首页 > 其它

螺旋矩阵

2018-01-18 11:02 405 查看
//l行和r列
public int[][] getSnakeMatrices(int l,int r ){
int result[][] = new int[l][r];
int left=0,right=0,top=0,down=0;
int point = 0;
while (point<r*l){
//向右移动i=left->row-right
for (int i = left;i<r-right;i++){
result[top][i] = ++point;
}
//记得每次都要判断- -不然line=1 的就有错
if(point>=r*l)break;
top++;
//向下移动i=top->line-down
for (int i=top;i<l-down;i++){
result[i][r-right-1] = ++point;
}
if(point>=r*l)break;
right++;
//向左移动i=row-right-1->left
for (int i=r-right-1;i>=left;i--){
result[l-down-1][i] = ++point;
}
if(point>=r*l)break;
down++;
//向上移动i=line-down-1->top;
for (int i=l-down-1;i>=top;i--){
result[i][left] = ++point;
}
if(point>=r*l)break;
left++;
}
return result;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: