题目描述:

给定一个n*n的二维矩阵表示一个图像。将图像顺时针旋转90度。

题目解析:

本题由于不允许采用额外的数组来进行辅助计算,于是,我们可以采用特殊解法:整个矩阵旋转90度,即意味着采用洋葱旋转法,每一层中的每一个数都进行相应的旋转即可。

具体代码如下:

class Solution {
public:void rotate(vector<vector<int>>& matrix) {int len = matrix.size();  //求出矩阵的行数for(int i=0;i<len/2;i++)  //表示外层循环{for(int j=i,k=i;j<len-1-i;j++)  //表示中层循环{int pre=matrix[j][k];  //记录下当前的数字,用pre进行保存for(int cnt=1;cnt<=4;cnt++)  //进行四次旋转{int tmp=j;  //设置中间交换变量tmpj=k;    //横坐标=纵坐标k=len-1-tmp;  //纵坐标等于总长度-1-初始横坐标swap(pre,matrix[j][k]);  //进行位置交换}}} }
};

Leetcode典型题解答和分析、归纳和汇总——T48(旋转图像)相关推荐

  1. Leetcode典型题解答和分析、归纳和汇总——T51(N皇后)

    题目描述: n皇后问题研究的是如何将n个皇后放置在n*n的棋盘上,并且使皇后彼此之间不能相互攻击. 给定一个整数n,返回所有不同的N皇后问题的解决方案. 题目解析: 本题采用典型的回溯法来进行求解.本 ...

  2. Leetcode典型题解答和分析、归纳和汇总——T101(对称二叉树)

    问题描述: 给定一个二叉树,检查它是否为镜像对称. 例如:二叉树[1,2,2,3,4,4,3]是镜像对称的. 但是[1,2,2,null,3,null,3]则不是镜像对称的. 说明:如果可以运用递归和 ...

  3. Leetcode典型题解答和分析、归纳和汇总——T46(全排列)

    题目描述: 给定一个没有重复数字的序列,返回其所有可能的全排列 题目解析: 本题是回溯算法的典型应用. 具体代码如下: class Solution{public:vector<vector&l ...

  4. Leetcode典型题解答和分析、归纳和汇总——T155(最小栈)

    问题描述: 设计一个支持push,top,pop操作,并能在常数时间内检索到最小元素的栈. 问题分析: 本题其实就是考察栈的基本操作:如入栈s.push(x),出栈s.pop(),查看栈顶元素值s.t ...

  5. Leetcode典型题解答和分析、归纳和汇总——T160(相交链表)

    问题描述: 编写一个程序,找到两个单链表相交的起始节点. 问题分析: 本题我们采用双指针的方式来进行求解.即A链表一个指针,B链表一个指针,当两者相遇时,表示找到相交节点.一般而言两者链表程度是不一致 ...

  6. Leetcode典型题解答和分析、归纳和汇总——T208(实现Trie前缀树)

    问题描述: 实现一个Trie前缀树,包含insert.search和startsWith这三个操作. 问题分析: 这类的题目与堆栈的最小元素查找类似,将所有功能进行集中处理. 首先我们需要明确一下tr ...

  7. Leetcode典型题解答和分析、归纳和汇总——T110(平衡二叉树)

    问题描述: 给定一个二叉树,判断它是否为平衡二叉树. 问题分析: 对当前节点分别求左右子树的深度,判断左右子树的高度差是否小于等于1. /*** Definition for a binary tre ...

  8. Leetcode典型题解答和分析、归纳和汇总——T35(搜索插入位置)

    题目描述: 给定一个排序数组和一个目标值,在数组中找到目标值,并返回索引.如果目标值不在数组中,返回它将会被按顺序插入的位置. 题目解析: 该题思路比较简单,采用一次循环遍历即可求出解. class ...

  9. Leetcode典型题解答和分析、归纳和汇总——T89(格雷编码)

    题目描述: 格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异. 给定一个代表编码总位数的非负整数n,打印其分类编码序列.格雷编码序列必须以0开头. 本题我们采用镜像法 0-& ...

最新文章

  1. activity的四种加载模式
  2. 开发编程值得收藏的经典书籍 免费下载
  3. 超级的全中文语音数据集合
  4. Java 自定义线程池
  5. jetty java 实例_Maven+Jetty+Servlet 简单示例
  6. 测试并发应用(三)监控Executor框架
  7. 【kafka】kafka kerberos KeeperErrorCode = InvalidACL for /config/topics
  8. WSGI Application/Framework
  9. 面向对象:MATLAB的自定义类 [MATLAB]
  10. msysgit+apache安装说明 - gitweb服务器部分
  11. eclipse的安装与环境配置
  12. 烽火mysql数据库安装_sql/mysql3.md · zack烽火/knowledge - Gitee.com
  13. matlab 三角函数 积化和差,三角函数积化和差与和差化积公式
  14. Python中*args、**kws 理解与使用(可变参数以及关键字参数)
  15. Usage of API documented as @since 1.9+ less... (Ctrl+F1) Inspection info: This inspection finds all
  16. 年轻人,你活着不是为了观察K线做布朗运动 ——从“全要素参与分配理论”谈股票市场的赚钱陷阱
  17. 【人工智能】CB Insights:2018年全球人工智能发展趋势报告
  18. 逻辑综合重点解析(Design Compiler篇)
  19. 用python代码(turtle库)绘制好看的效果图
  20. 平面设计中的网格系统pdf_【200421】平面设计必看书籍超越平凡的设计平面设计中的网格系统等|电子书资源免费分享...

热门文章

  1. 乳品行业拥抱大数据时代
  2. 新闻速递 | 恭喜肖晓容工程师获得Domo专业认证!
  3. PHP反序列化与SESSION
  4. CF 线段树 gcd改变
  5. rd630服务器raid修复,rd630raid配置与各种软件安装.pdf
  6. 一个字节有多少位(๑′ᴗ‵๑)
  7. Mac通过aapt获取apk文件的基本信息
  8. linux安装appt服务,Centos下pptd ***搭建
  9. Duolingo推出聊天学习机器人 让你免费学英语
  10. 建行计算机面试个人介绍,2013建设银行四川省分行个人面试经验分享