【尚硅谷-Java学习】回形数

2023-10-28

回形数

题目描述

输入整数n,生成n*n的二维数组,元素按照顺时针顺序从1递增。例如输入3,得到

1 2 3
8 9 4
7 6 5

思路

定义四个变量up、down、left、right,分别表示数组的最上面、最下面、最左、最右的索引。

从左到右填入第一行,然后将第一行剥离,即up++;判断up>down则break;
从上到下填入最右列,然后将最右列剥离,即right–;判断left>right则break;
从右到左填入最下行……
从下到上填入最左列……

代码

import java.util.Scanner;

public class HuiXingShu {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int n = scanner.nextInt();
		int up=0;
		int left = 0;
		int down=n-1;
		int right = n-1;
		int[][] array = new int[n][n];
		int start=1;
		while(true){
			for (int i = left; i < right+1; i++) {
				array[up][i] = start;
				start++;
			}
			up++;
			if(up>down){
				break;}
			
			for (int i = up; i < down+1; i++) {
				array[i][right] = start;
				start++;
			}
			right--;
			if(right<left){
				break;
			}
			
			for (int i = right; i > left-1; i--) {
				array[down][i] = start;
				start++;
			}
			down--;
			if(up>down){
				break;
			}
			
			for (int i = down; i > up-1; i--) {
				array[i][left] = start;
				start++;
			}
			left++;
			if(right<left){
				break;
			}
			
			
		}
	
	}

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【尚硅谷-Java学习】回形数 的相关文章

  • 【JavaScript】详解JavaScript中的replace()函数

    replace 1 方法简介 2 replace 使用 2 1 replace 字符串 字符串 2 2 replace 正则表达式 字符串 2 3 replace 正则表达式 function 2 3 1 简单用法 正则表达式不使用分组 2
  • QString 和char *和QByteArray的转换总结

    参考博客 https www cnblogs com findumars p 5107700 html 以下内容摘抄以上大神博客 1 char转换为QString char a b QString str str QString a 2 Q
  • 为 openEuler 安装 桌面环境图形化界面【ukui】

    三 UKUI 图形化界面 3 1 安装图形化界面 ukui 由于openEuler只有命令行操作界面 所以我们可以给openEuler安装一个桌面图形环境 最近华为发布了一个适用于openEuler的图形化界面 叫作UKUI 3 1 1 首
  • C++调用python脚本

    C 调用python的脚本 一 为什么 缘由 用python写了机器学习的模型 项目工程代码是C 写得 所以在调用时 想通过C 调用python脚本 用c 获取返回值 然后就是一个接着一个的坑 二 环境 环境win10 64 VS2008
  • 虚拟机中如何挂载物理磁盘(VMware操作)

    虚拟机中如何挂载物理磁盘 VMware操作 来源 本站转载 作者 佚名 时间 2012 04 16 11 05 04 测试的时候难免会遇到 从真是机器拷贝东西到虚拟机中 虽说安装了VMware tools Vm Install VMware
  • 关于Mybatis中的条件查询。createCriteria example里面的条件

    之前用Mybatis框架反向的实体 还有实体里面的Example 之前只是知道Example里面放的是条件查询的方法 可以一直不知道怎么用 到今天才开始知道怎么简单的用 在我们前台查询的时候会有许多的条件传过来 先看个例子 public L
  • linux内核分析编译体验

    一 资源 linux 2 6 22 6 下载地址 https mirrors edge kernel org pub linux kernel v2 6 linux 2 6 22 6 jz2440 patch下载地址 https downl
  • cesium简介

    文章目 1 什么是Cesium 2 Cesium能做什么 3 Cesium的依赖性 4 Cesium学习参考 Cesium实战系列文章总目录 传送门 1 什么是Cesium Cesium是AGI公司计算机图形开发小组与2011年研发的三维地
  • ant-design-vue customRequst

    关于a upload中customRequest customRequest回调参数 onProgress event percent number void onError event Error body Object void onS
  • python输出高斯消元法求解行列式的过程

    前言 有人可能好奇 为啥有那么多工具还要自己写一个 emmm 比如我求 Ax b 增广矩阵 比如说我想要 A I A I A I gt
  • 没有工业软件 谈什么智能制造转型

    没有工业软件 谈什么智能制造转型 时间 2017 02 04 1 赞 0 评论 关键字 工业软件 智能制造 PI推出全新LinkSwitch TN2开关电源IC LinkSwitch LP ADC原理及应用 AWR1243查看技术文档 Li
  • 程序员成长的四个简单技巧,你 get 了吗?

    最近拜读了 阿里工程师的自我修养 手册 12 位技术专家分享生涯感悟来帮助我们这些菜鸡更好的成长 度过中年危机 我收获颇多 其中有不少的方法技巧和我正在使用的 这让我觉得我做的这些事情是对的 我走在了一条正确的道路上 我们程序员这个行业不像
  • vue+element表格的左右布局及动态添加行

    一般我们实现表格 直接使用element中的table组件 现在有个原型图是 类似表头左边 本来在纠结要写元生的表格了 最后突然想到把它当成form表单 直接样式实现表格效果 效果如图 我这里还有一个动态的添加行 我只做了这一个的动态添加的
  • [ MySQL] — 事务管理

    什么是事务 事务就是一组DML语句组成 这些语句在逻辑上存在相关性 这一组DML语句要么全部成功 要么全部失败 是一个整体 MySQL提供一种机制 保证我们达到这样的效果 事务还规定不同的客户端看到的数据是不相同的 事务就是要做的或所做的事
  • springcloud3 分布式事务解决方案seata之TCC模式6

    一 TCC模式 1 1 TCC的逻辑 TCC模式与AT模式非常相似 每阶段都是独立事务 不同的是TCC需要人工干预编写代码 需要实现三个方法 Try 资源的检测和预留 Confirm 完成资源操作业务 要求 Try 成功 Confirm 一
  • springboot多环境配置

    1 新建一个springboot项目 2 新建多个环境的配置文件 在springboot中多环境配置文件名需要满足 application profile yml的格式 其中 profile 是对应的环境标识 比如 开发环境 applica
  • ES6详解七:循环的秘密 - iterator 和 yield

    如果学过设计模式或者java之类的肯定知道 iterator 是什么 在 Symbol iterator 出现后 JS中也可以自己定义一个迭代器 只要一个对象实现了正确的 Symbol iterator 方法 那么它就可以被 for in
  • 【问题解决】javaWeb项目中报:java.io.FileNotFoundException: src\druid.properties (系统找不到指定的路径。)错误

    在登录界面填写账号密码提交后 报java io FileNotFoundException src druid properties 系统找不到指定的路径 错误 解决方法 把下面的相对路径改为绝对路径 改正后 可正常运行
  • MySQL中InnoDB的事务隔离

    文章目录 前言 一 事务介绍 二 事务的四大特性 三 事务的隔离性 四 事务隔离的实现 前言 我们在实际开发中 执行某个业务 肯定不是简单的操作某一句SQL语句 而是多条SQL语句 那么这多条SQL语句必须是全部成功执行 或者全部失败 才能

随机推荐

  • 刷脸支付服务商加入支付行业分一杯羹

    随着人工智能的成熟 更多智能化融入到日常生活中 支付行业在智能的浪潮下有了翻天复地的变化 由传统支付到新型支付 再到人工智能 由传统钱包到手机钱包 由手动数钱到指纹识别 每个迭代周期超乎我们的想象 就支付行业 中国已经处在全世界领先地位 让
  • springcloud(九):微服务的链路追踪 zipkin + 消息中间件收集数据 + 存储跟踪数据

    一 zipkin 1 概述 在大型系统的微服务化构建中 一个系统会被拆分成许多模块 这些模块负责不同的功能 组合成系 统 最终可以提供丰富的功能 在这种架构中 一次请求往往需要涉及到多个服务 互联网应用构建在 不同的软件模块集上 这些软件模
  • 数据清洗实例分析

    一 数据清洗工作 数据清洗 如填充缺失数据 消除噪声数据等 主要是通过分析 脏数据 的产生原因和存在形式 利用现有的数据挖掘手段和方法去清洗 脏数据 将 脏数据 转化为满足数据质量要求或应用要求的数据 从而提高数据集的质量 满足现阶段数据分
  • 【贪心+可并堆】 [BalticOI 2004]Sequence 数字序列

    题目 思路 首先考虑原题弱化版 相邻的b可以相等 于是我们可以得到两个性感感性的结论 如果a递增 则b a最优 如果a递减 b a的中位数最优 根据这两个结论 我们可以得到一个比较感性的做法 将原序列分成单调不升的m段 则每一段我们都取中位
  • 1122.数组的相对排序(分治+拼接)

    题意 本题目刚刚接触可能会有一点想不通 这是正常的现象对题目的解释如下 arr1的数组与arr2的数组中以arr2的数组进行排序 将arr1中的但是没有在arr2中不存在的元素 与arr2进行拼接 原题题干 代码 class Solutio
  • PostgreSQL数据库命令行执行SQL脚本的三种方式

    文章目录 前言 一 psql命令执行 二 i命令执行 三 e命令执行 总结 前言 生成环境中 出于安全性等原因 往往不提供数据库连接工具 所以对数据库的更新和升级就得通过命令行来实现 本文总结了三种命令行执行sql脚本的方式 一 psql命
  • 22.1 Numpy 去重

    Numpy 去重 np unique 参数1 a 数组 参数2 return index True False 新列表元素在旧列表中的位置 参数3 retun inverse True False 旧列表元素在新列表中的位置 参数4 ret
  • Vue3 实现Event-Bus事件总线 (mitt插件)

    文章目录 一 参考 二 问题描述 三 开发案例 typescript 解析 instance proxy Bus出错 一 参考 vue3 eventBus npm mitt 二 问题描述 Vue3 没有像Vue2那样创建一个Vue实例作为事
  • centos 7 开启80,443端口

    一 查看系统防火墙状态 如果返回 running 代表防火墙启动正常 1 firewall cmd state 二 开启端口外网访问 1 添加端口 返回 success 代表成功 permanent永久生效 没有此参数重启后失效 1 fir
  • QProcess中的调用外部exe结束之后的finished信号及常用信号

    1 可以参考相关的链接 https doc qt io Qt 5 qprocess html finished 2 注意使用的时候启动以下4个信号 使用的是start 否则启动就有问题 这边注意一下start 和startDetached
  • 【总结】Apk反编译全解

    实践总结 解决问题 乐在分享 古月大仙荣誉出品 欢迎关注 加粉 点赞 评论 交流 1 内容摘要 Apk保险措施 混淆 加固 NDK 敏感操作的字符串替代 检查签名 高手成长路径 脱壳 反编译 jadx dex jar和apktool xml
  • 安装WSL过程

    1 准备 必须使用windows10 2004版本和更高的版本 19041或者更高 或者windows11 win R 输入winver查询当前windows版本 2 安装 现在可以通过在命令行 管理员权限 输入wsl install 来安
  • Pikachu-暴力破解验证码绕过

    目录 一 验证码绕过 on client 1 验证码的认证流程 2 不安全验证码 on client常见问题 3 实验过程 二 验证码绕过 on server 1 不安全验证码 on server常见问题 2 实验过程 一 验证码绕过 on
  • MySQL存储过程

    文章目录 简介 优点 缺点 编写第一个MySQL存储过程 调用存储过程要调用存储过程 可以使用以下SQL命令 MySQL存储过程的变量 声明变量 分配变量值 变量范围 作用域 删除存储过程 存储过程的参数 MySQL存储过程参数示例 1 I
  • 【开发工具】使用VMware安装Ubuntu系统

    目录 一 下载Ubuntu镜像 二 下载VMware虚拟机系统 三 新建虚拟机 四 安装Ubuntu系统 一 下载Ubuntu镜像 下载地址 版本 Ubuntu 22 04 LTS https cn ubuntu com download
  • "通配符"和"正则表达式"的区别

    通配符是系统level的 而正则表达式需要相关工具的支持 egrep awk vi perl 在文本过滤工具里 都是用正则表达式 比如像awk sed等 是针对文件的内容的 通配符多用在文件名上 比如查找find ls cp 等等 1 通配
  • ipad连接电脑_一个从windows传文件到ipad的方法

    动机 写这篇文章的起因是想用ipad看存在windows上的视频 于是就琢磨了下windows系统传文件到ipad的方法 一个比较好的办法是用iCloud传 但是条件受限 一方面 iCloud只有5G的存储空间 另一方面 家里没网 只能靠4
  • 技术溢出

    1 企业和国家都是一个虚拟的主题 是由人们的想象构成 2 国家只是在体量 多样性上高于企业而已 3 管理企业和管理国家理论上没有区别 只是使命感不同 企业是为了盈利而产生的 政党是为了人民而服务的 后来有的企业开始服务于人民 有的政党开始逐
  • Linux必学知识(超全)

    Linux 一 Linux 的介绍 二 CentOS 安装技术难点 网络配置三种方式理解 2 1虚拟机的三种网络配置方式的说明 2 2 Centos 终端的使用和联网 2 2 1在 centos 的 ff 可以联网 可以和外部的 ip 联通
  • 【尚硅谷-Java学习】回形数

    回形数 题目描述 输入整数n 生成n n的二维数组 元素按照顺时针顺序从1递增 例如输入3 得到 1 2 3 8 9 4 7 6 5 思路 定义四个变量up down left right 分别表示数组的最上面 最下面 最左 最右的索引 从