螺旋矩阵(算法题)

文章目录

  • 螺旋矩阵
    • 解题思路

螺旋矩阵

给你一个正整数 n ,生成一个包含 1n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix

示例 1:

img

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

解题思路

模拟这个螺旋过程。

  1. 初始化数组
  2. 确定循环次数,loop = n / 2;
  3. 循环时,奇数的中间值需要特殊处理
  4. startx,starty,用于确定每一次循环的起始点
  5. offset,用于减少每一次循环的此处
  6. mid,用于处理中间值

终点:**循环不变量,**每一次循环遵循左闭右开的原则。

分为

  • 最上方从左往右
  • 最右方从上往下
  • 最下方从右往左
  • 最左方从下往上

详细代码如下:

class Solution {public int[][] generateMatrix(int n) {//保证循环不变量的操作int startx = 0 ,starty = 0;int result[][] = new int[n][n]; //初始化数组int loop = n / 2; //循环次数,奇数时,中间值需要特殊处理。int mid = n / 2; //中间值int i,j; //用于循环int offset = 1; //用于减少每一次的循环次数int count = 1; //用于赋值while(loop-- > 0){  //循环次数//最上方从左往右for(j = starty; j < n - offset; j++){result[startx][j] = count++;}//最右方从上往下for(i = startx;i < n- offset;i++){result[i][j] = count++;}//最下方从右往左for(;j > starty;j--){result[i][j] = count++;}//最左方从下往上for(;i > startx;i--){result[i][j] = count++;}startx++;   //设置下一次的起始点starty++;   //设置下一次的起始点offset++;   //设置下一次的循环次数}//如果为奇数,中间值,特殊处理if(n % 2 == 1){result[mid][mid] = count; }return result;}
}

我是小辉,24 届毕业生。当下是找工作ing,欢迎关注,持续分享。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/17421.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人类和小鼠转录组上游分析

基础软件 conda install cutadapt, trimmomatic, samtools, hisat2, subread, deeptools -y人类转录组上游分析 # 样本名称 sample_namesample# 线程 threads4# 双端测序原始fastq1和fastq2路径 fastq1_path/path/${sample_name}_1.fq.gz fastq2_path/path/${sample_name}_2.…

5倍收益秘诀:APP广告如何变现?

在这个数字时代&#xff0c;智能手机几乎成了我们生活中不可或缺的一部分。无论是早晨醒来的第一件事&#xff0c;还是睡前的最后一件事&#xff0c;手机都与我们紧密相连。而在这个连接的世界里&#xff0c;APP广告变现成为了一个热门话题&#xff0c;它不仅仅是将每一次点击转…

AI 大模型如何在各行业跑通业务闭环?

随着人工智能技术的快速发展&#xff0c;AI大模型作为新兴的技术范式&#xff0c;正在深刻改变着各行各业的生产方式和服务模式。从科技金融到健康医疗&#xff0c;从教育行业到物流与供应链&#xff0c;AI大模型的应用正在推动企业向全面数智化转型。然而&#xff0c;当惊喜与…

Redis与数据库同步指南:订阅Binlog实现数据一致性

本文作者:小米,一个热爱技术分享的29岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号“软件求生”,获取更多技术干货! 大家好,我是29岁的小米,一名积极活泼、热爱分享技术的开发者。今天,我们来聊聊分布式系统中的一个重要话题——分布式一致性,特别是数据库和R…

解决bug :OSError: cannot open resource

在创建词云&#xff0c;运行程序的时候报错OSError: cannot open resource 1、定位问题 遇到这种报错&#xff0c;通常是由于无法加载字体导致的 2、寻找字体文件 字体文件通常以 ​​.ttf​​ 或 ​​.otf​​ 扩展名结尾。在Windows操作系统上&#xff0c;字体文件通常存…

如何清除电脑使用痕迹?5个方法保护个人隐私!

“我在使用电脑时&#xff0c;想将之前的使用痕迹删除&#xff0c;不知道应该怎么才能正确操作呢&#xff0c;希望大家给我出出主意。” 在使用电脑的过程中&#xff0c;我们经常会留下各种使用痕迹&#xff0c;如浏览历史、文档记录、临时文件等。这些痕迹可能会暴露我们的隐私…

随机森林算法实现分类

随机森林算法实现对编码后二进制数据的识别 1.直接先上代码&#xff01; import numpy as np import pandas as pd from sklearn.model_selection import train_test_split, GridSearchCV from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import …

自用升级centos7.2的默认Python 2.7.5为python3.8

wget https://www.python.org/ftp/python/3.8.8/Python-3.8.8.tgztar zxvf Python-3.8.8.tgz 进入刚刚解压后的目录 ./configure --prefix/data/soft/python3按照上面截图所属&#xff0c;需要安装gcc 安装报错需要安装 sudo yum install zlib1g-dev make -j4 make install -…

京东618全民拆快递 autojs一键脚本

京东618的最新活动为全民拆快递,因为是20周年的活动,所以可以瓜分20亿红包,想要购买一些家电的朋友可以提前关注起来,领取的红包可以直接抵扣,京东618全民拆快递软件app是专为此活动打造的一款辅助工具,可以帮你自动做任务,当然也支持淘宝的任务。 任务设置 1、自动打开…

【安装笔记-20240520-Windows-在 QEMU 中尝试运行 OpenWRT】

安装笔记-系列文章目录 安装笔记-20240520-Windows-在 QEMU 中尝试运行 OpenWRT 文章目录 安装笔记-系列文章目录安装笔记-20240520-Windows-在 QEMU 中尝试运行 OpenWRT 前言一、软件介绍名称&#xff1a;OpenWRT主页官方介绍 二、安装步骤测试版本&#xff1a;openwrt-23.05…

开源大模型与闭源大模型那个更好?

开源大模型和闭源大模型各有其优势和劣势&#xff0c;究竟哪个更好取决于具体的应用场景、组织目标、资源和能力等因素。以下是两种模型的一些优势对比&#xff1a; 开源大模型的优势&#xff1a; 1. 社区支持与合作&#xff1a;开源大模型能够借助全球开发者社区的力量&#x…

Java单元测试

单元测试一 一、单选题 1 public class Test{public static void main(String[] args){int i1;switch(i){case 0:System.out.println("1"(i));case 1:System.out.println("2"(i));break;case 2:System.out.println("3"(i));default…

【WEEK13】学习目标及总结【Spring Boot】【中文版】

学习目标&#xff1a; 学习SpringBoot 学习内容&#xff1a; 参考视频教程【狂神说Java】SpringBoot最新教程IDEA版通俗易懂Shiro 简介Hello World整合Spring Boot登录拦截用户认证Shiro整合MyBatisShiro请求授权的实现&#xff08;前半部分&#xff09; 学习时间及产出&…

算法题目记录

1.最短距离 题目简化&#xff1a; 明确问题 算法提示&#xff1a; 1.如何判断同类之间的最短距离为0 ---> 并查集路径压缩 2.如何存储任意两类的距离 ---> 邻接矩阵存储无向图 3.如何表示每个点属于哪一类 ---> 用数组id[节点]存储属于哪一类 4.如何算出任意两类…

光伏组件积灰检测系统

光伏组件积灰检测系统是一种专门用于监测光伏组件表面灰尘积累情况的设备。以下是关于该系统的详细信息和特点&#xff1a; 系统概述 光伏组件积灰检测系统安装在光伏板的框架上&#xff0c;通过实时监测光伏组件表面的灰尘厚度、分布情况和清洁度&#xff0c;为运维人员提供…

Codeforces Round 948 (Div. 2) D. XORificator(哈希)

题目 n*m(n*m<3e5)的矩阵&#xff0c; 实际为t(t<1e4)组样例&#xff0c;但保证sum n*m不超过3e5 你可以选一行把所有01翻转&#xff0c;问最多可以让多少列只有一个1&#xff0c;然后把你翻转的行输出 思路来源 其实题还挺裸的&#xff0c;教了一下潘老师&#xff0…

UIAbility的使用

UIAbility概述 UIAbility是一种包含用户界面的应用组件&#xff0c;主要用于和用户进行交互。UIAbility也是系统调度的单元&#xff0c;为应用提供一系列的窗口&#xff0c;应用在这些窗口里绘制用户交互界面。 每一个UIAbility实例&#xff0c;都对应于一个最近任务列表中的任…

CART 算法【python,机器学习,算法】

CART(Classification and Regression Tree)分类回归树。使用基尼指数计算得到树的节点。基尼指数表示系统整体的不确定性&#xff0c; 不确定性越大&#xff0c;基尼指数越大&#xff0c;所以在决策树中&#xff0c;将加权基尼系数最小的特征作为树的决策节点。 公式推导 基尼…

28【Aseprite 作图】苹果——拆解

1 画苹果框架 左边:第一行 7 第二行 2 第三 四行1 竖着7行 竖着2行 竖着1 、1 行 横着2个 横着4个 苹果可以是左右对称的,完成上述后,水平翻转到右边 2 枝叶 第一行1 左边 2 3 4 行,各1 第5行,竖着4个 再横着3个 右边 竖着3个,然后斜着2个,然后斜着1个 最上面的,两个…