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

[LeetCode]—Rotate Image 矩阵90度翻转

Rotate Image

 

You are given an n x n 2D matrix representing an image.

Rotate the image by 90 degrees (clockwise).

Follow up:
Could you do this in-place?


分析:如果手动模拟,将依次从外向内移动4条边,比较复杂。

            可以考虑将90度翻转,转换为矩阵对角线、水平、垂直对称问题。90度翻转有如下转换关系:



有了90度的对称旋转方法,180度与 270度都可以通过多次90度旋转解决,但同样也可以直接研究其旋转关系。 

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;

class Solution{
public:
    void rotate(vector<vector<int> > &matrix){    
        int n=matrix.size();
        if(n==1)return;

        //以副对角线为轴翻转。
        int i,j;
        for(i=0;i<n;i++){
            for(j=n-1-i;j>=0;j--){
                if((n-1-i)==j)continue;  //对角线上的点不用翻转
                swap(matrix[i][j],matrix[n-1-j][n-1-i]);
            }
        }

        //以水平中轴线为轴线翻转。
        int bott=n-1;
        i=0;
        while(i<bott){
            for(j=0;j<n;j++){
                swap(matrix[i][j],matrix[bott][j]);
            }

            i++;
            bott--;
        }
        return; 
    }
};



相关文章:

  • “国家使命”图书第一批权威发布
  • Windows 7 ship party
  • LeetCode]—Rotate List 循环右移链表
  • 推荐阅读:太极拳的奥妙-专访七十肖维佳老翁现场展示
  • 一个真实的项目经历,很多东西大家可以借鉴下
  • 无法启动调试 未安装silverlight
  • [LeetCode]—Copy List with Random Pointer 深度复制带“任意指针”的链表
  • DB2使用Data Studio连接报ERRORCODE=-4499 SQLSTATE=08001
  • [LeetCode]—Implement strStr() 寻找子串匹配第一个位置 (KMP)
  • MFC图形函数(转载)
  • [LeetCode]—Add Binary 两个字符串二进制相加
  • 一个VC写的模拟时钟
  • [LeetCode]—Longest Palindromic Substring 最长回文子串
  • 串行通信技术SERDES
  • 从两种SQL表连接写法来了解过去
  • 【5+】跨webview多页面 触发事件(二)
  • Android Volley源码解析
  • AngularJS指令开发(1)——参数详解
  • hadoop集群管理系统搭建规划说明
  • JSONP原理
  • js面向对象
  • mac修复ab及siege安装
  • mysql 5.6 原生Online DDL解析
  • SpiderData 2019年2月13日 DApp数据排行榜
  • SwizzleMethod 黑魔法
  • V4L2视频输入框架概述
  • 百度地图API标注+时间轴组件
  • 大主子表关联的性能优化方法
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 基于游标的分页接口实现
  • 开源SQL-on-Hadoop系统一览
  • 前端面试题总结
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 数组大概知多少
  • 算法-图和图算法
  • 探索 JS 中的模块化
  • 小李飞刀:SQL题目刷起来!
  • 学习使用ExpressJS 4.0中的新Router
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • Prometheus VS InfluxDB
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • #if 1...#endif
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (ros//EnvironmentVariables)ros环境变量
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .net web项目 调用webService
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .NET设计模式(8):适配器模式(Adapter Pattern)
  • .NET中使用Protobuffer 实现序列化和反序列化