【算法练习】数组操作

news/2024/11/25 18:56:41/

二维数组顺时针旋转

解决思路

  1. 创建新数组,将原数组的数据按照一定的顺序放入新数组中。
  2. 如果是顺时针的话,原数组中第一排的元素是应该放在新数组最后一列中的。

Java实现

public class RotateOne {public static void main(String[] args) {int[][] A = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};int n = 3;int[][] B = new int[n][n];for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {B[j][n - 1 - i] = A[i][j];}}ArrayUtil.printArray(B);}
}

二维数组逆时针旋转

解决思路

  1. 逆时针的话,原数组第一排的元素放在新数组的第一列

Java实现

public class RotateTwo {public static void main(String[] args) {int[][] A = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};int n = 3;int[][] B = new int[n][n];for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {B[n - 1 - j][i] = A[i][j];//A[0][0]-->B[2][0]//A[0][1]-->B[1][0]}}ArrayUtil.printArray(B);}
}

螺旋矩阵

https://leetcode.cn/problems/spiral-matrix/

解决思路

  1. 设定数组的边界,并且不断的更新边界值。
  2. 跳出循环的条件,当更新边界值不满足条件的时候,跳出循环。

Java实现

class Solution_LC54_II {public List<Integer> spiralOrder(int[][] matrix) {List<Integer> res = new ArrayList<>();if (matrix.length == 0) {return res;}int top = 0, bottom = matrix.length - 1, left = 0, right = matrix[0].length - 1;while (true) {for (int i = left; i <= right; i++) {res.add(matrix[top][i]);}if (++top > bottom) {break;}for (int i = top; i <= bottom; i++) {res.add(matrix[i][right]);}if (--right < left) {break;}for (int i = right; i >= left; i--) {res.add(matrix[bottom][i]);}if (--bottom < top) {break;}for (int i = bottom; i >= top; i--) {res.add(matrix[i][left]);}if (++left > right) {break;}}return res;}
}

在这里插入图片描述


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

相关文章

详解ES6的Promise

ES6&#xff08;ECMAScript 6&#xff09;是JavaScript的一种标准&#xff0c;也被称为ES2015。它是在2015年发布的第六个ECMAScript标准版本&#xff0c;引入了许多新的语法和特性来增强JavaScript的功能和可读性。 文章目录 一、创建promise 二、处理Promise 三.Promise链…

多目标应用:基于非支配排序的鲸鱼优化算法NSWOA求解微电网多目标优化调度(MATLAB代码)

一、微网系统运行优化模型 微电网优化模型介绍&#xff1a; 微电网多目标优化调度模型简介_IT猿手的博客-CSDN博客 二、基于非支配排序的鲸鱼优化算法NSWOA 基于非支配排序的鲸鱼优化算法NSWOA简介&#xff1a; 三、基于非支配排序的鲸鱼优化算法NSWOA求解微电网多目标优化…

【探索嵌入式虚拟化技术与应用】— 虚拟化技术深入浅出自学系列

&#x1f308;个人主页: Aileen_0v0&#x1f525;系列专栏:【探索嵌入式虚拟化技术与应用】&#x1f4ab;个人格言:"没有罗马,那就自己创造罗马~" 目录 一、虚拟技术的发展历史 1.1传统技术的局限性&#xff1a; ​编辑 1.2云计算和万物互联技术的发展机遇&#x…

Arthas使用教程

文章目录 一、简介 1、简介 2、项目所在位置 二、安装Arthas 1、安装Arthas 2、卸载Arthas 3、首次启动。 三、核心监视功能 1、monitor&#xff1a;监控方法的执行情况 2、watch&#xff1a;检测函数返回值 3、trace&#xff1a;根据路径追踪&#xff0c;并记录消耗时间 4、st…

11.9 实现磁盘相关操作

11.9.1 遍历磁盘容量 如下代码实现了在Windows系统中获取所有磁盘驱动器的信息。具体包括两个函数&#xff0c;一个用于获取驱动器类型&#xff0c;另一个用于获取驱动器空间信息。主函数则调用这两个函数来遍历所有逻辑驱动器并输出相应的信息。在输出驱动器空间信息时&#…

开源集群管理系统对比分析:Kubernetes 与 Apache Mesos

集群管理系统是关键的软件解决方案&#xff0c;可以在互连机器网络中有效分配和利用计算资源。毫无疑问&#xff0c;它们通过确保可扩展性、高可用性和有效的资源管理在现代计算中发挥着至关重要的作用&#xff0c;这使得它们对于运行复杂的应用程序、管理数据中心以及进一步增…

2023年G3锅炉水处理证考试题库及G3锅炉水处理试题解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年G3锅炉水处理证考试题库及G3锅炉水处理试题解析是安全生产模拟考试一点通结合&#xff08;安监局&#xff09;特种作业人员操作证考试大纲和&#xff08;质检局&#xff09;特种设备作业人员上岗证考试大纲随机…

7、信息打点——资产泄露CMS识别Git监控SVNDS_Store备份

知识点&#xff1a; CMS指纹识别、源码获取方式习惯&配置&特征等获取方式托管资产平台资源搜索监控 如何获取源码 直接识别CMS&#xff0c;根据CMS获取网站源码。CMS直接识别工具&#xff1a;云悉指纹识别平台。识别不了CMS&#xff0c;则通过以下方式获取源码&…