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

JAVA算法练习题day17

今天花了好多时间啊,以后就思考20分钟吧,但是是全神贯注的思考和笔推公式,不能空想。不过这次确实想出来了,就是细节还是差了。

20.旋转图像

错误解法:实在想不出来了,“原地”就很难。还是自己没想到位。

class Solution {public void rotate(int[][] matrix) {//第0行成为最后一列,第1行成为倒数第二列,第i行成为n-i-1列。//按“成为”行列对应关系,遍历对应的行与列。按照遍历的位次 依次交换他们的元素。//错在“交换”  ’成为‘ 应当是单向的赋值。但是被赋值的列,原本的元素又该怎么做?//难在“原地” for(int i = 0;i < matrix.length ; i++){//row i 对应col n-i-1for(int j = 0 ; j<matrix.length ; j++){int tmp = matrix[j][matrix.length - i - 1];matrix[j][matrix.length - i - 1] = matrix[i][j];matrix[i][j] = tmp;}}}
}

如果用辅助空间,自己是想出来了,但是要注意一些细节(矩阵赋值 new出来的东西赋值不能靠变量名= 来做)。

具体代码:

class Solution {public void rotate(int[][] matrix) {for(int i = 0 ;i < matrix.length/2 ; i++){for(int j=0;j<matrix.length;j++){int tmp = matrix[i][j];matrix[i][j]=matrix[matrix.length-i-1][j];matrix[matrix.length-i-1][j]=tmp;}}for(int i = 0 ;i < matrix.length ; i++){//j<matrix.length 相当于没翻转。。。//注意细节!!!!还是写好公式再CODE比较稳妥for(int j=0;j<i;j++){int tmp = matrix[i][j];matrix[i][j]=matrix[j][i];matrix[j][i]=tmp;}}}
}

然后发现(也看了力扣的题解)先上下翻折,然后对角线折就可以。

class Solution {public void rotate(int[][] matrix) {for(int i = 0 ;i < matrix.length/2 ; i++){for(int j=0;j<matrix.length;j++){int tmp = matrix[i][j];matrix[i][j]=matrix[matrix.length-i-1][j];matrix[matrix.length-i-1][j]=tmp;}}for(int i = 0 ;i < matrix.length ; i++){//j<matrix.length 相当于没翻转。。。//注意细节!!!!还是写好公式再CODE比较稳妥for(int j=0;j<i;j++){int tmp = matrix[i][j];matrix[i][j]=matrix[j][i];matrix[j][i]=tmp;}}}
}

http://www.dtcms.com/a/394177.html

相关文章:

  • Nacos:服务注册和配置中心
  • Linux 命令行快捷键
  • EasyClick JavaScript Number
  • LeetCode:42.将有序数组转化为二叉搜索树
  • 海外代理IP网站有哪些?高并发场景海外代理IP服务支持平台
  • JavaScript数据交互
  • 11.2.5 自定义聊天室
  • 力扣:字母异味词分组
  • Linux视频学习笔记
  • 2014/12 JLPT听力原文 问题四
  • Elasticsearch面试精讲 Day 21:地理位置搜索与空间查询
  • 华为数字化实战指南:从顶层设计到行业落地的系统方法论
  • 外部 Tomcat 部署详细
  • 【回文数猜想】2022-11-9
  • 216. 组合总和 III
  • Bugku-请攻击这个压缩包
  • 2. NumPy数组属性详解:形状、维度与数据类型
  • 【css特效】:实现背景色跟随图片相近色处理
  • vuex原理
  • 内存泄露怎么排查?
  • nginx配置防盗链入门
  • Kafka 多机房、跨集群复制、多租户、硬件与操作系统、全栈监控
  • leetcode136.只出现一次的数字
  • 力扣hot100:环形链表II(哈希算法与快慢指针法思路讲解)
  • 【算法】【Leetcode】【数学】统计1的个数 数位统计法
  • Kafka面试精讲 Day 21:Kafka Connect数据集成
  • MySQL 主从复制完整配置指南
  • 力扣每日一刷Day 23
  • LeetCode 53. 最大子数组和(四种解题思路)包含扩展返回最大和的数组
  • RTX 4090助力深度学习:从PyTorch到生产环境的完整实践指南——高效模型训练与优化策略