栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

记录-螺旋数组

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

记录-螺旋数组

package Day3;

public class SpiralMatrix {

	public static void main(String[] args) {
		int[][] spiral_array = Spiral_array(3);
		for (int i = 0; i < spiral_array.length; i++) {
			for (int j = 0; j < spiral_array.length; j++) {
				System.out.printf("%d ", spiral_array[i][j]);
			}
			System.out.println();
		}	}


	public static int[][] Spiral_array(int n) {
		int[][] result = new int[n][n];

		if (n < 1) {
			return result;
		}

		int top = 0, right = n - 1, buttom = n - 1, left = 0;
		int i = 1;
		int size = n * n;

		while (size > 0) {
			// 从左到右遍历
			for (int col = left; col <= right; col++) {
				result[top][col] = i;
				size--;
				i++;
			}
			top++;

			// 从顶到底遍历

			for (int row = top; row <= buttom; row++) {
				result[row][right] = i;
				size--;
				i++;
			}
			right--;

			// 从右到左遍历

			for (int row = right; row >= left; row--) {
				result[buttom][row] = i;
				size--;
				i++;
			}
			buttom--;

			// 从底部到顶部

			for (int col = buttom; col >= top; col--) {
				result[col][left] = i;
				size--;
				i++;
			}
			left++;

		}

		return result;
	}

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/318090.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号