螺旋矩阵(正螺旋和逆螺旋)

news/2024/10/21 9:44:45/
package com.classmassage.cn.util;public class Lxjz {/*** question: 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且* 元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。*/public static void main(String[] args) {printMatrix(generateMatrix(5));printMatrix(generateMatrixn(5));}//正螺旋矩阵public static int[][] generateMatrix(int n) {//当前位置int i = 0, j = 0;//循环次数int loop = n == 1 ? 1 : n - 1;//当前填充的数据int count = 1;//标识方向int direction = 1;//存放结果int[][] result = new int[n][n];while (count <= n * n) {//从上往下if (direction == 1) {for (int k = 0; k < loop; ++k) {result[i][j++] = count++;}direction = 2;continue;}//从左往右if (direction == 2) {for (int k = 0; k < loop; k++) {result[i++][j] = count++;}direction = 3;continue;}//从右往左if (direction == 3) {for (int k = 0; k < loop; k++) {result[i][j--] = count++;}direction = 4;continue;}//从下往上if (direction == 4) {for (int k = 0; k < loop; k++) {result[i--][j] = count++;}direction = 1;loop = loop == 3 || loop == 2 ? loop / 2 : loop - 2;i++;j++;continue;}}return result;}//逆螺旋矩阵public static int[][] generateMatrixn(int n) {//当前位置int i = 0, j = 0;//循环次数int loop = n == 1 ? 1 : n - 1;//当前填充的数据int count = 1;//标识方向int direction = 1;//存放结果int[][] result = new int[n][n];while (count <= n * n) {//从上往下if (direction == 1) {for (int k = 0; k < loop; k++) {result[i++][j] = count++;}direction = 2;continue;}//从左往右if (direction == 2) {for (int k = 0; k < loop; ++k) {result[i][j++] = count++;}direction = 3;continue;}//从右往左if (direction == 3) {for (int k = 0; k < loop; k++) {result[i--][j] = count++;}direction = 4;continue;}//从下往上if (direction == 4) {for (int k = 0; k < loop; k++) {result[i][j--] = count++;}direction = 1;loop = loop == 3 || loop == 2 ? loop / 2 : loop - 2;i++;j++;continue;}}return result;}/*** 打印矩阵** @param matrix*/public static void printMatrix(int[][] matrix) {for (int i = 0; i < matrix.length; i++) {for (int j = 0; j < matrix[i].length; j++) {System.out.print(matrix[i][j] + "\t");}System.out.println();}}}

http://www.ppmy.cn/news/461291.html

相关文章

字蛛使用方法

先安装node.js 如果没有先下载&#xff1a;https://nodejs.org/en/download/ 打开Node.js command prompt如下图所示&#xff0c;并输入命令&#xff1a;npm install font-spider -g 回车执行 切换到你写的css页面声明字体&#xff0c;方法与CSS3的font-face方法类似 font-face…

狼与狮子的选择

狼与狮子的选择 上帝把两群羊放在草原上&#xff0c;一群在南&#xff0c;一群在北。上帝还给羊群找了两种天敌&#xff0c;一种是狮子&#xff0c;一种是狼。 上帝对羊群说:「如果你们要狼&#xff0c;就给一只&#xff0c;任它随意咬你们。如果你们要狮子&#xff0c;就给…

搜索引擎蜘蛛的基本原理

搜索引擎用来爬行和访问页面的程序被称为蜘蛛&#xff0c;也叫做机器人。搜素引擎蜘蛛访问网站页面的时候就和你使用浏览器访问的过程一样&#xff0c;蜘蛛发出访问页面的请求&#xff0c;服务器会返回HTML代码&#xff0c;蜘蛛程序把这些代码存到原来页面的数据中&#xff0c;…

爱斯基摩人捕狼

爱斯基摩人捕猎狼的办法世代相传&#xff0c;很特别&#xff0c;也很有效。严冬季节&#xff0c;他们在锋利的刀刃上涂上一层新鲜的动物血。等血冻住后&#xff0c;他们再往上涂第二层血。再让血冻住&#xff0c;然后再涂……如此反复&#xff0c;很快刀刃就被冻血坨藏得严严实…

狼与羊

题目 青青草原上有100只狼和1只喜羊羊&#xff0c;狼可以吃草也可以吃羊&#xff0c;但是狼更喜欢吃羊。 ①如果狼吃了羊&#xff0c;就会变成羊&#xff0c;可能被其他狼吃掉。 ②假设这些狼都绝对聪明&#xff0c;他们的第一要务是生存。 ③一只羊只能被一只狼吃掉&#…

常见的搜索引擎蜘蛛有哪些

spider常见的SEO搜索引擎蜘蛛有 Baiduspider、Googlebot、bingbot、Bytespider、YisouSpider 等 常见蜘蛛整理 1.百度: baidu.com - Baiduspider 2.谷歌: google.com - Googlebot 3.必应蜘蛛&#xff1a;bing.com - bingbot 4.头条蜘蛛&#xff1a;toutiao.com - Bytespid…

海蜘蛛详细安装教程(图解)

海蜘蛛详细安装教程&#xff08;图解&#xff09; 打开VMware虚拟机&#xff0c;点击号添加新的虚拟机&#xff0c;选择自定义安装 添加一个网络适配器 加载iso文件 打开后一直enter即可 到此海蜘蛛安装成功&#xff0c;开始配置海蜘蛛路由

字蛛的使用

什么是字蛛&#xff1f; 设计师的春天&#xff1a;中文WebFont解决方案Font-Spider(字蛛) 官网 http://font-spider.org/ 使用方法 1、安装node 2、安装字蛛 &#xff1a;npm install font-spider -g 或者 cnpm install font-spider -g 3、font-spider index.html 或者 *.ht…