leetcode009-Rotate Image
来源:互联网 发布:吃鸡网络延迟 编辑:程序博客网 时间:2024/06/06 04:06
You are given an n x n 2D matrix representing an image.
Rotate the image by 90 degrees (clockwise).
Note:
You have to rotate the image in-place, which means you have to modify the input 2D matrix directly. DO NOT allocate another 2D matrix and do the rotation.
Example 1:
Given input matrix = [ [1,2,3], [4,5,6], [7,8,9]],rotate the input matrix in-place such that it becomes:[ [7,4,1], [8,5,2], [9,6,3]]
Example 2:
Given input matrix =[ [ 5, 1, 9,11], [ 2, 4, 8,10], [13, 3, 6, 7], [15,14,12,16]], rotate the input matrix in-place such that it becomes:[ [15,13, 2, 5], [14, 3, 4, 1], [12, 6, 8, 9], [16, 7,10,11]]
基本思路:这题我尝试了单纯模拟旋转的方法,一圈转完再转里面一圈,思路不复杂,就是找规律。
class Solution {public: void rotate(vector<vector<int>>& matrix) { int n = matrix.size(); if (n == 0 || n == 1) return; int k = 0; while (1) { int step = n-1-k*2; //多少圈 if (step <= 0) break; int i; for (i = k; i < n-1-k; i++) { // 每一圈内交替交换位置的元素为一组,这里循环圈内的组 int temp = matrix[k][i]; int w = n-1-k-(i); int h = step-w; swap(temp,matrix[k+h][i+w]); swap(temp,matrix[k+h+w][i+w-h]); swap(temp,matrix[k+w][i-h]); swap(temp,matrix[k][i]); } k++; } } void swap(int& a, int& b) { a = a^b; b = a^b; a = a^b; }};
Seen this question in a real interview
阅读全文
0 0
- leetcode009-Rotate Image
- leetcode009
- leetcode009
- Rotate Image
- Rotate Image
- Rotate Image
- Rotate Image
- Rotate Image
- Rotate Image
- Rotate Image
- Rotate Image
- Rotate Image
- Rotate Image
- Rotate Image
- Rotate Image
- Rotate Image
- Rotate Image
- Rotate Image
- 字符串的大小及与指针的关系
- ssh-keygen的-C后面的邮箱有什么用?
- 个人总结33
- 汇编与C/C++内联嵌入汇编
- LeetCode.41 First Missing Positive
- leetcode009-Rotate Image
- unbuntu中添加非根用户并赋予sudo权限
- C++格式控制字符
- 【095】深度学习读书笔记:P30证明行列式等于方阵特征值的乘积
- WPF ToolTip控件使用
- Eddy's AC难题 HDU
- Java反射的用法
- filter就是调用test,forEach分别调用accept,collect把流生成一个list,map()返回一个Stream
- 学习ArcGIS API for JavaScript(1)