最新要闻
- 环球头条:特斯拉中国上线490元酒杯 限量卖 网友吐槽智商税
- 世界今日讯!女子连吃5天感冒药 多脏器功能衰竭:专家提醒小心这些症状
- IT工程师哪里工资最高?美国仅排第二 第一收入超过70万
- 天天看热讯:帧数暴涨40%!《巫师3》次时代版画质优化指南
- 20万级大杀器 长安深蓝首款SUV曝光:增程、纯电全都有
- 男主角是明星的小说有哪些?男主角是明星的小说推荐
- 科比最后一场比赛是什么时候?科比最后一场比赛是多少分?
- 鞋子防臭的小妙招有哪些?鞋子防臭喷雾哪个牌子好?
- 沙棘如何鉴别好坏?沙棘的功效作用与主治是什么?
- 玉碎了代表什么征兆?玉碎了有什么办法修复吗?
- 今日热议:4999元 小米13限量定制色明天首销:只有5万台
- 环球焦点!中国民营火箭朱雀二号发射失利 全球首型轨道飞行的甲烷火箭
- 当前播报:QQ邮箱推实用新功能:英文文档一键即可翻译
- 【报资讯】丰田凯美瑞看呆!新一代本田雅阁实车曝光:比思域还运动
- 撞到快报废!特斯拉高速追尾大货车 司机身亡:现场视频速度快到可怕
- 单手就能用的折叠屏旗舰!OPPO Find N2今天发布:比直板机还轻
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
【世界速看料】LeetCode HOT 100:旋转图像
(资料图)
题目:48. 旋转图像
题目描述:
给你一个正方形矩阵数组,将其中的所有元素都顺时针旋转90度,得到旋转之后的矩阵数组。本题要求必须在原地修改,不能使用额外空间。
思路:
看到这个题,如果可以使用额外空间,很简单,把行都放到列上就行。假设原数组num[row][col]
,放到新列上就是num[col][n − row − 1]
。但是本题要求必须原地修改,那么上述对应关系就不能直接用了,因为会导致元素被覆盖,等遍历到num[col][n − row − 1]
元素的时候,原来该下标的值就找不到了。这类旋转矩阵的题,都可以采用一种宏观思想,也就是分圈。举个例子:
1 | 2 | 3 |
---|---|---|
4 | 5 | 6 |
7 | 8 | 9 |
转化之后为:
7 | 4 | 1 |
---|---|---|
8 | 5 | 2 |
9 | 6 | 3 |
可以一圈一圈的进行旋转,定义好圈的左上角和右下角,然后一圈圈的往里推进,就能把矩阵中所有圈都旋转完,矩阵也就旋转完了。然后在每一圈里,每个元素找到旋转之后的位置规律即可。找规律也是有方法的,将这一圈的数字可以划分为组,例如上面的矩阵,最外圈所有元素,假设划分为两组。第一组(1, 3, 9, 7)
,第二组(2, 6, 8, 4)
。旋转之后,第一组:1 -> 3, 3 -> 9, 9 -> 7, 7 -> 1
,第二组也一样,2 -> 6, 6 -> 8, 8 -> 4, 4 -> 2
。那么咱们假设,圈左上角坐标为(a, b)
,右下角坐标为(c, d)
。那么第一组的四个数字,坐标分别为(a, b), (a, d), (c, d), (c, b)
,那么旋转关系就是(a, b) -> (a, d)、(a, d) -> (c, d)、(c, d) -> (c, b)、(c, b) -> (a, b)
。第二组坐标分别为(a, b + 1), (a + 1, d), (c, d - 1), (c - 1, b)
,旋转关系为(a, b + 1) -> (a + 1, d)、(a + 1, d) -> (c, d - 1)、(c, d - 1) -> (c - 1, b)、(c - 1, b) -> (a, b + 1)
。如果将上面的1
都转化为一个变量i
,那么规律就出来了。每一个组的转化关系都是(a, b + i) -> (a + i, d)、(a + i, d) -> (c, d - i)、(c, d - i) -> (c - i, b)、(c - i, b) -> (a, b + i)
。这个i
肯定从0
开始,但是什么时候终止呢,也就是一圈的数要分成几组呢?很简单,d - b
组,因为在一圈中有d- b
组元素,需要找到对应位置进行旋转。例如上面的矩阵,最外圈需要以7
开头和以4
开头的两组需要进行旋转。
步骤:
1、找到矩阵最外圈的左上角坐标和右下角坐标,作为参数开始调用旋转一圈的函数2、在旋转一圈的函数中,拿到两个坐标,开始根据位置规律,进行对应的旋转3、每次一圈完毕之后,左上角坐标加1,右下角坐标减1,当左上角坐标大于右下角坐标的时候,终止。说明所有圈都旋转完毕
代码:
public void rotate(int[][] matrix) { // 使用左上角(a, b),右下角(c, d)来规划一个圈 int a = 0, b = 0; int c = matrix.length - 1, d = matrix[0].length - 1; while (a < c) { // 将(a, b)和(c, d)划出来的圈,进行旋转 // 然后将圈往里推进一圈 rotateEdge(matrix, a++, b++, c--, d--); } } // 将以(a, b)和(c, d)划出来的圈,进行旋转 public void rotateEdge(int[][] matrix, int a, int b, int c, int d) { int temp; // 将圈中每一个元素都找到对应的位置,进行旋转。 for (int i = 0; i < d - b; i++) { temp = matrix[a][b + i]; matrix[a][b + i] = matrix[c - i][b]; matrix[c - i][b] = matrix[c][d - i]; matrix[c][d - i] = matrix[a + i][d]; matrix[a + i][d] = temp; } }
因为矩阵一定是正方形矩阵,所以代码可以进行适当优化,左上角和右下角坐标,x轴和y轴坐标一定一样。所以可以从四个变量,缩减为两个。代码如下:
public void rotate(int[][] matrix) { // 使用左上角(a, b),右下角(c, d)来规划一个圈 int a = 0, c = matrix.length - 1; while (a < c) { // 将(a, b)和(c, d)划出来的圈,进行旋转 // 然后将圈往里推进一圈 rotateEdge(matrix, a++, c--); } } // 将以(a, b)和(c, d)划出来的圈,进行旋转 public void rotateEdge(int[][] matrix, int a, int c) { int temp; // 将圈中每一个元素都找到对应的位置,进行旋转。 for (int i = 0; i < c - a; i++) { temp = matrix[a][a + i]; matrix[a][a + i] = matrix[c - i][a]; matrix[c - i][a] = matrix[c][c - i]; matrix[c][c - i] = matrix[a + i][c]; matrix[a + i][c] = temp; } }
【世界速看料】LeetCode HOT 100:旋转图像
环球头条:特斯拉中国上线490元酒杯 限量卖 网友吐槽智商税
世界今日讯!女子连吃5天感冒药 多脏器功能衰竭:专家提醒小心这些症状
IT工程师哪里工资最高?美国仅排第二 第一收入超过70万
天天看热讯:帧数暴涨40%!《巫师3》次时代版画质优化指南
20万级大杀器 长安深蓝首款SUV曝光:增程、纯电全都有
【天天速看料】Shell 标准输入和输出
信息:公司新来一个同事,把网关系统设计的炉火纯青!(万能通用,稳的一批。。)
当前视讯!易基因|NSUN2介导RNA m5C修饰促进食管鳞状细胞癌进展的表观调控机制 | 肿瘤研究
ThingsBoard前端项目的安装与启动
【时快讯】RELIC库学习
全球看热讯:喜讯+1!袋鼠云数栈技术团队获“2022年度优秀开源技术团队”
投影仪的工作原理是什么?投影仪排名前十的品牌
Centos安装Nginx
针孔无线摄像机怎么连接?针孔无线摄像机怎么用?
本地连接受限制或无连接是怎么回事?本地连接受限制或无连接怎么解决?
svchost.exe占用cpu过是什么原因?svchost.exe占用cpu过高解决方法
pdf文件打开是乱码怎么回事?pdf文件打开是乱码时该怎么办?
男主角是明星的小说有哪些?男主角是明星的小说推荐
科比最后一场比赛是什么时候?科比最后一场比赛是多少分?
鞋子防臭的小妙招有哪些?鞋子防臭喷雾哪个牌子好?
沙棘如何鉴别好坏?沙棘的功效作用与主治是什么?
玉碎了代表什么征兆?玉碎了有什么办法修复吗?
英雄联盟更新慢是什么原因?英雄联盟更新慢怎么办?
怎么才能加快迅雷的下载速度?加快迅雷下载速度的方法有哪些?
全球讯息:阻止Windows未知应用弹窗的一种思路方法
Zabbix6.0使用教程 (四)—zabbix6.0从源代码安装
Tomcat工作原理
小键盘指法是什么意思?小键盘指法包括什么键?
iphone13如何添加公交卡?iphone13添加公交卡的方法有哪些?
安卓系统的手机有哪些?安卓系统的手机有哪些牌子好?
天天快讯:针对某钓鱼网站的渗透测试
【脚本项目源码】Python制作桌面宠物,这么可爱的萌宠你不想拥有吗?
今日热议:4999元 小米13限量定制色明天首销:只有5万台
环球焦点!中国民营火箭朱雀二号发射失利 全球首型轨道飞行的甲烷火箭
当前播报:QQ邮箱推实用新功能:英文文档一键即可翻译
【报资讯】丰田凯美瑞看呆!新一代本田雅阁实车曝光:比思域还运动
撞到快报废!特斯拉高速追尾大货车 司机身亡:现场视频速度快到可怕
单手就能用的折叠屏旗舰!OPPO Find N2今天发布:比直板机还轻
环球视讯!反对无效!日本投放广告宣传福岛核污水安全性:必须排海
【环球播资讯】我国成功发射遥感三十六号卫星!长征火箭年发射数首次迈上50大关
【环球速看料】适合男女双打 这三款游戏拉近你和她的距离
焦点滚动:腾讯互动阅读App《一零零一》宣布将停运:补偿方案出炉
环球新动态:显卡不会便宜了?NV要发新RTX 4080、4090:移动版也万元节奏
世界新消息丨法国2-0摩洛哥 决赛战阿根廷!网友发现规律:姆巴佩进球就不会输
快消息!Vue核心概念与其指令
Wireshark使用笔记
焦点!Zabbix监控系统
世界快资讯丨Kubernetes Volumes 笔记
取代奔腾/赛扬!Intel 12代Alder Lake-N处理器来了:清一色小核、超低功耗
环球即时看!德国樱桃收购瑞典外设品牌Xtrfy:对方只有12人
当前信息:国六B汽油要全面上线了!听说这玩意又贵又不耐烧?
环球关注:Wi-Fi 7:明年下半年见
天天看点:App流畅度提升88%!小米承诺:所有升级MIUI 14机型均支持光子引擎
全球要闻:雷军:全面对标苹果iPhone 一个新的小米开始了
环球滚动:[WPF] MediaElement播放HDR视频泛黄、颜色显示不正确应该如何解决?
R数据分析:冲击流图与热图的做法以及多图布局
简讯:VUE简介
天天微头条丨意外之喜:苹果给iPhone 6s/7推送iOS 15.7.2系统更新
焦点精选!脱口秀演员直播带货:想得美好
直播:今年最后一场大型流星雨来了!双子座流星雨压轴登场
游戏性能被RX7900反超?《巫师3》次世代版4090光追演示
天天信息:摩托罗拉×潘通 “非凡洋红”限定版新机来了
Python3.7.3环境搭建
全球观点:哈希表总结
当前报道:2022 ICPC 杭州站 K - Master of Both // Trie
RTX 4080为何要定价这般高?背后原因揭开
【环球热闻】面对矿卡 老黄已经悄悄带头冲锋了!一箭双雕 真是绝了
环球短讯!旧版微博拜拜:大量用户被直接改为新版界面
全球新动态:工信部出手!手机预装App终于能卸载了:2023年执行
切勿模仿!男子让幼儿握方向盘开车还拍摄炫耀:扣3分、罚200
4G已够用 美国运营商推5G陷入麻烦:4200亿投资难赚回来
全球简讯:Intel Arc显卡驱动升级:吃鸡快了4%、还有16个Bug
百事通!玩家最担心的事要发生!AMD RX 7900系列大概率涨价
天天微资讯!CDPR确认《巫师3》次世代版存在Bug:将尽快修复
高玩一步到位 阿斯加特32GB DDR5-6800 RGB灯条1350元
精选!浅析JWT Attack
记录--uniapp 应用APP跳转微信小程序
天天滚动:用 ChatGPT 来完成笔试题
MYSQL 3 DAY
世界热点评!第一百一十三篇: JS数组Array(二)数组方法 栈、队列、排序
世界快资讯丨《流浪地球2》公布星尘海报:人类的勇气永刻星空
全球快播:原因不服不行 大巴黎官方:我们已锁定世界杯冠军!梅西/姆巴佩争金靴
世界热讯:《死侍3》确认为R级!休·杰克曼将回归饰演金刚狼
环球快报:奇瑞SUV颜值天花板!俄罗斯花滑“千金”喜提OMODA C5:定制车身
微头条丨工资加倍都招不到人!官方要求北京快递业人员应返岗尽返岗
环球时讯:行业方案 | 新规落地,企业集团财务公司如何构建数智财务体系?
环球实时:模板层之标签 自定义模板语法 模板的继承与导入 搭建测试环境 ORM常用关键字
最强护眼屏!moto X40蓝光占比远低于行业均值
当前速看:为了让人多下游戏?特斯拉推出1TB车规级固态硬盘
世界实时:奥迪新车开了半小时咚咚响 4S店换零件车主想换车
当前看点!5年研发投入1000亿!小米发布首部知识产权白皮书:授权专利超2.9万项
每日速读!Redmi K60要用上陶瓷/素皮了?卢伟冰在线征集偏好:陶瓷第一
微头条丨Prometheus技术分享——如何监控宿主机和容器
当前视点!人类核聚变取得突破性进展:什么是核聚变、重要吗?
【热闻】闷声发大财 奇瑞第四代混动专用1.5L发动机下线:油耗大降
世界微头条丨7单元发声设计!小米Sound Pro智能音箱开售 首发999元
世界最新:小米13 Pro绝配!小米50W立式风冷无线充Pro图赏
全球热议:跑分突破133万!努比亚Z50《原神》半小时稳成直线
天天关注:学习 Shell准没错