59. Spiral Matrix II java solutions

本文提供了一种使用Java实现的螺旋矩阵生成方法。通过控制四个边界,从外向内一圈一圈地填充数字,最终得到一个n×n的螺旋矩阵。

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 ]
]
 1 public class Solution {
 2     public int[][] generateMatrix(int n) {
 3         int startx = 0,starty = 0,endx = n-1,endy = n-1;
 4         int[][] ans = new int[n][n];
 5         int count = 1;
 6         while(startx <= endx && starty <= endy){
 7             for(int i = startx;i<=endx;i++){
 8                 ans[starty][i] = count++;
 9             }
10             starty++;
11             
12             for(int i = starty;i<=endy;i++){
13                 ans[i][endx] = count++;
14             }
15             endx--;
16             
17             for(int i = endx;i>=startx;i--){
18                 ans[endy][i] = count++;
19             }
20             endy--;
21             
22             for(int i = endy;i>=starty;i--){
23                 ans[i][startx] = count++;
24             }
25             startx++;
26         }
27         return ans;
28     }
29 }

模拟螺旋打印的过程即可。

转载于:https://www.cnblogs.com/guoguolan/p/5620000.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值