当前位置: 首页 > news >正文

精选算法编程题

一、有序数组的平方

给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。

示例 1:

  • 输入:nums = [-4,-1,0,3,10]
  • 输出:[0,1,9,16,100]
  • 解释:平方后,数组变为 [16,1,0,9,100],排序后,数组变为 [0,1,9,16,100]

示例 2:

  • 输入:nums = [-7,-3,2,3,11]
  • 输出:[4,9,9,49,121]

二、螺旋矩阵

给定一个正整数 n,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。

示例:

输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]

public class test2 {public static void main(String[] args) {Scanner in = new Scanner(System.in);int n = in.nextInt();int[][] nums = generateMatrix(n);for (int i = 0; i < n; i++){for (int j = 0; j < n; j++){System.out.print(nums[i][j] + " ");}System.out.println();}}public static int[][] generateMatrix(int n) {int[][] nums = new int[n][n];int startX = 0, startY = 0;int count = 1;int loop = 0; // 起始为0while (loop < n / 2) {// 顶部 左闭右开for (int j = startY; j < n - 1 - loop; j++) {nums[startX][j] = count++;}// 右列 左闭右开for (int i = startX; i < n - 1 - loop; i++) {nums[i][n - 1 - loop] = count++;}// 底部 左闭右开for (int j = n - 1 - loop; j > loop; j--) {nums[n - 1 - loop][j] = count++;}// 左列 左闭右开for (int i = n - 1 - loop; i > loop; i--) {nums[i][loop] = count++;}startX++;startY++;loop++;}// 如果n为奇数,填充中心位置if (n % 2 == 1) {nums[n / 2][n / 2] = count;}return nums;}
}


http://www.mrgr.cn/news/15621.html

相关文章:

  • 《炉石传说》国服9月25日回归 预约活动上线:送金卡、皮肤
  • 金融上云方案中,国产虚拟化产品选型的重点考虑因素、自动化运维建设步骤及如何进行保障数据中心安全需求的存储设计等问题及解决方法|金融行业数字化QA合集③
  • 四通道非洲猪瘟检测仪
  • 小爱同学与大模型的完美融合:开启智能交互新时代
  • 深度学习分类模型训练代码模板
  • 【C语言从不挂科到高绩点】05-流程控制语句-switch语句
  • 【机器学习】支持向量机(SVM)的对偶性、核方法以及核技巧
  • LED的使用寿命评估
  • 值得收藏!这6招教你怎么管理客户!
  • 第一批懂AI的产品经理,已经碾压同事了!
  • 智能客服的未来:构建全知全能的知识问答系统
  • YOLOv8改进 | 损失函数篇 | YOLOv8引入EfficiCLoss损失函数(有效提点)
  • 一文300字从0到1使用Postman轻松搞定文件上传测试!
  • uniapp布局
  • 代码随想录算法训练营第五十七天 | 图论part07
  • 笔记:应用Visual Studio Profiler识别和解决内存泄漏问题
  • RAG最佳实践:用 ElasticSearch 打造AI搜索系统与RAG 应用全流程详解!
  • 8月30日微语报,星期五,农历七月廿七
  • 具有平面规则性的单目视觉惯性里程计
  • 设计循环队列