161-旋转图像

给定一个N×N的二维矩阵表示图像,90度顺时针旋转图像。

样例

给出一个矩形[[1,2],[3,4]],90度顺时针旋转后,返回[[3,1],[4,2]]

挑战

能否在原地完成?

标签

Cracking The Coding Interview 矩阵

思路

先上下交换矩阵行,然后沿主对角线交换矩阵元素

code

class Solution {
public:
/*
* @param matrix: a lists of integers
* @return:
*/ void rotate(vector<vector<int>>& matrix) {
// write your code here
int size = matrix.size(), i = 0, j = 0;
if (size <= 0) {
return;
} for (i = 0; i < size / 2; i++) {
swap(matrix[i], matrix[size - 1 - i]);
}
for (i = 0; i < size; i++) {
for (j = 0; j < i; j++) {
swap(matrix[i][j], matrix[j][i]);
}
}
}
};

lintcode-161-旋转图像的更多相关文章

  1. lintcode: 旋转图像

    旋转图像 给定一个N×N的二维矩阵表示图像,90度顺时针旋转图像. 解题 顺时针旋转90度 就是 上下翻转,再主对角对折 public class Solution { /** * @param ma ...

  2. [LintCode]——目录

    Yet Another Source Code for LintCode Current Status : 232AC / 289ALL in Language C++, Up to date (20 ...

  3. (lintcode全部题目解答之)九章算法之算法班题目全解(附容易犯的错误)

    --------------------------------------------------------------- 本文使用方法:所有题目,只需要把标题输入lintcode就能找到.主要是 ...

  4. Lintcode 85. 在二叉查找树中插入节点

    -------------------------------------------- AC代码: /** * Definition of TreeNode: * public class Tree ...

  5. Lintcode 166. 主元素

    ----------------------------------- Moore's voting algorithm算法:从一个集合中找出出现次数半数以上的元素,每次从集合中去掉一对不同的数,当剩 ...

  6. Lintcode 166. 链表倒数第n个节点

    ----------------------------------- 最开始的想法是先计算出链表的长度length,然后再从头走 length-n 步即是需要的位置了. AC代码: /** * De ...

  7. Lintcode 157. 判断字符串是否没有重复字符

    ------------------------ 因为字符究竟是什么样的无法确定(比如编码之类的),恐怕是没办法假设使用多大空间(位.数组)来标记出现次数的,集合应该可以但感觉会严重拖慢速度... 还 ...

  8. Lintcode 175. 翻转二叉树

    -------------------- 递归那么好为什么不用递归啊...我才不会被你骗...(其实是因为用惯了递归啰嗦的循环反倒不会写了...o(╯□╰)o) AC代码: /** * Definit ...

  9. Lintcode 372. O(1)时间复杂度删除链表节点

    ----------------------------------- AC代码: /** * Definition for ListNode. * public class ListNode { * ...

  10. Lintcode 469. 等价二叉树

    ----------------------------------------------- AC代码: /** * Definition of TreeNode: * public class T ...

随机推荐

  1. bootstrap-paginator分页插件的简单使用实例

    Document 21:36:40 简述:bootstrap-paginator是一款基于bootstrap的jQuery分页插件. githup项目地址:https://github.com/lyo ...

  2. Android简单的编写一个txt阅读器(没有处理字符编码),适用于新手学习

    本程序只是使用了一些基本的知识点编写了一个比较简单粗陋的txt文本阅读器,效率不高,只适合新手练习.所以大神勿喷. 其实想到编写这种程序源自本人之前喜欢看小说,而很多小说更新太慢,所以本人就只能找一个 ...

  3. mt7620a拓展串口

    mt7620a拓展串口 要修改的文件有两个: mt7620a.dtsi 进入/home/ihid/chaos_calmer/target/linux/ramips/dts/mt7620a.dtsi p ...

  4. BIOS简单讲解

    学习链接: http://www.xuetangx.com/courses/course-v1:TsinghuaX+30240243X+sp/courseware/1d95cdf6f0e9434488 ...

  5. 简单R语言爬虫

    R爬虫实验 R爬虫实验 PeRl 简单的R语言爬虫实验,因为比较懒,在处理javascript翻页上用了取巧的办法. 主要用到的网页相关的R包是: {rvest}. 其余的R包都是常用包. libra ...

  6. 讯飞SDK的使用

    在配置好Android Studio 2.3.3后,依照结合网上例子,动手创建讯飞语言听写app,最终手机上运行成功. 主要参考两篇博文(zqHero/XunFeiVoiceDEmo ,Android ...

  7. ATextAppearance.AppCompat.Small not found

    今天编译的代码的时候,刚才还是好的,后来吃个饭回来,就不行了. 报错如下: AGPBI: {"kind":"error","text":&q ...

  8. Ubentu编译Android源码(AOSP)

    前言: 一直想要编译一下Android 源码,之前去google 看,下载要下载repo. 当时很懵逼,repo 是个什么?(repo 是一个python 脚本,因为Android 源码git 仓库太 ...

  9. hdu2066一个人的旅行(floyd优化)

    一个人的旅行 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  10. HTML 常见的 DOCTYPE 声明

    <!DOCTYPE> 声明必须是 HTML 文档的第一行,位于 <html> 标签之前. <!DOCTYPE> 声明不是 HTML 标签:它是指示 web 浏览器关 ...