蛇形数组
来源:互联网 发布:妈妈讲故事软件下载 编辑:程序博客网 时间:2024/05/16 05:54
蛇形数组就是:
[1, 2, 3][8, 9, 4][7, 6, 5]
和
[ 1, 2, 3, 4][12, 13, 14, 5][11, 16, 15, 6][10, 9, 8, 7]
这种,数字呈螺旋状向中心递增。
思路很简单,用一个flag判断递增的方向:上
、下
、左
、右
。
import java.util.Arrays;public class Test { /** * 0 上 * 1 下 * 2 左 * 3 右 */ private static int flag = 3; public static void main(String[] args) throws Exception { int N = 4; // 宽度 int n = 1; // 起始值 int i = 0, j = 0; // 坐标 int[][] nums = new int[N][N]; while (n <= N * N) { nums[i][j] = n++; switch (flag) { case 0: // 因为数组被初始化为0,数字从1开始递增,所以0即为蛇形未经过的坐标值 if (i - 1 >= 0 && nums[i - 1][j] == 0) { // 当前坐标没有抵达边缘 i--; break; } // 当前坐标抵达边缘 flag = 3; j++; break; case 1: if (i + 1 < N && nums[i + 1][j] == 0) { i++; break; } flag = 2; j--; break; case 2: if (j - 1 >= 0 && nums[i][j - 1] == 0) { j--; break; } flag = 0; i--; break; case 3: if (j + 1 < N && nums[i][j + 1] == 0) { j++; break; } flag = 1; i++; break; } } /* Print */ for (int[] num : nums) { System.out.println(Arrays.toString(num)); } }}
0 0
- 蛇形数组
- 蛇形数组
- 蛇形数组
- 蛇形数组
- 蛇形数组
- 蛇形数组
- 蛇形数组
- 蛇形数组
- 蛇形数组
- 蛇形数组
- 蛇形数组
- 蛇形数组
- 蛇形数组
- 蛇形数组
- 蛇形数组
- 蛇形数组
- 蛇形输出数组问题
- //输出蛇形数组
- Oracle 管理用户
- startup.sh: command not found
- UITableView最上面tableHeaderView留空间的两种方法
- 5G通信技术解读:波束成形如何为5G添翼?
- Time Serise Analysis[Using R]
- 蛇形数组
- android 移植 ffmpeg (一)
- OpenCV生成不规则ROI另一法
- QML中push传参数从当前QML到下一个QML
- 利用runtime解决button重复响应事件
- 双向循环链表的建立
- struts2入门,HelloWorld环境搭建。
- tomcat+nginx+redis实现均衡负载、session共享---(推荐)
- Fast Paxos