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

力扣HOT100之矩阵:48. 旋转图像


这道题本来想用剥洋葱的办法的,一直写不对,放弃了。。。直接去看题解,用剥洋葱其实也可以做,就是要从外层处理到内层,每一个边界上的元素为matrix[0].size() - 1个,这样一来,四条边界上的元素个数都相同,然后直接狂用swap函数交换就完事了,但是我看评论区还有更加简洁的办法,就是通过找规律可以看出来,将矩阵顺时针旋转90°等价于先将矩阵进行转置,再逐行逆序排列,我想了一下,剥洋葱还是有点太麻烦了,然后就直接用这个简单的思路,代码也很好写。

class Solution {
public:
    void rotate(vector<vector<int>>& matrix) {
        //顺时针旋转90度等价于矩阵先做转置再逐行逆序
        //1.对矩阵进行转置
        for(int i = 0; i < matrix.size(); ++i){
            for(int j = 0; j < i; ++j)
                swap(matrix[i][j], matrix[j][i]);
        }
        //2.逐行逆序
        for(int i = 0; i < matrix.size(); ++i){
            int left = 0, right = matrix[i].size() - 1;
            while(left < right){
                swap(matrix[i][left], matrix[i][right]);
                ++left;
                --right;
            }
        }
    }
};

相关文章:

  • 《JVM考古现场(十四):混沌重启——从量子永生到宇宙热寂的终极编译》
  • 「Unity3D」TMP_InputField关闭虚拟键盘后,再次打开虚拟键盘,此时无法回调onSelect的问题
  • 文章配图新纪元:OpenAI新推出的GPT-4o原生图像生成功能启示
  • Joint Receiver Design for Integrated Sensing and Communications
  • 双向链表的理解
  • 【Kettle安装】Kettle安装过程, 电脑已安装java23,安装Kettle 出现报错:尝试启动 Java 虚拟机(JVM)时失败解决方法
  • JavaEE-MyBatis概述第一个程序
  • Redis GEO
  • [7-02-02].第15节:生产经验 - 消费者相关操作
  • 农产品直卖平台的设计与实现(代码+数据库+LW)
  • Burpsuite 伪造 IP
  • 数据结构与算法:二维动态规划
  • 图解AUTOSAR_SWS_CANDriver
  • 【区块链安全 | 第二十四篇】单位和全局可用变量(二)
  • 翻译: 人工智能如何让世界变得更美好四
  • BERT与Transformer到底选哪个-下部
  • css_z-index属性
  • C++STL---<functional>
  • 如何使用fiddler抓取手机APP的包,进行前后端bug定位
  • pyproj 库中Geod类—geod.npts()方法讲解
  • 做网站百度一下/杭州排名优化公司
  • 腾讯的网站建设用了多少钱/班级优化大师下载安装app
  • discuz论坛网站做的门户/上海培训机构有哪些
  • 新赣州房产网/抖音关键词排名优化
  • php可以做视频网站/营销策划公司 品牌策划公司
  • 广东省建设厅安全员b证报名网站/深圳最新疫情最新消息