- 浏览: 138649 次
文章分类
- 全部博客 (189)
- Tree (14)
- Dynamic Programming (34)
- Array (20)
- Search (1)
- Hash (12)
- Backtracking (22)
- Divide and Conque (8)
- Greedy (6)
- Stack (12)
- software (0)
- List (7)
- Math (22)
- Two pointers (16)
- String (20)
- Linux (1)
- Sliding Window (4)
- Finite State Machine (1)
- Breadth-first Search (7)
- Graph (4)
- DFS (6)
- BFS (3)
- Sort (9)
- 基础概念 (2)
- 沟通表达 (0)
- Heap (2)
- Binary Search (15)
- 小结 (1)
- Bit Manipulation (8)
- Union Find (4)
- Topological Sort (1)
- PriorityQueue (1)
- Design Pattern (1)
- Design (1)
- Iterator (1)
- Queue (1)
最新评论
-
likesky3:
看了数据结构书得知并不是迭代和递归的区别,yb君的写法的效果是 ...
Leetcode - Graph Valid Tree -
likesky3:
迭代和递归的区别吧~
Leetcode - Graph Valid Tree -
qb_2008:
还有一种find写法:int find(int p) { i ...
Leetcode - Graph Valid Tree -
qb_2008:
要看懂这些技巧的代码确实比较困难。我是这么看懂的:1. 明白这 ...
Leetcode - Single Num II -
qb_2008:
public int singleNumber2(int[] ...
Leetcode - Single Num II
[分析]
自己的思路:从外到内一圈圈顺时针旋转90度,坐标映射问题。
Leetcode讨论区有很多有趣巧妙的思路,列举两个点赞率较高思路:
1)上下颠倒,然后转置
/*
* clockwise rotate
* first reverse up to down, then swap the symmetry
* 1 2 3 7 8 9 7 4 1
* 4 5 6 => 4 5 6 => 8 5 2
* 7 8 9 1 2 3 9 6 3
*/
2)转置,然后左右颠倒
若需要逆时针,则分别是:
1)左右颠倒,然后转置
2)转置,然后上下颠倒
[ref]
https://leetcode.com/discuss/20589/a-common-method-to-rotate-the-image
自己的思路:从外到内一圈圈顺时针旋转90度,坐标映射问题。
Leetcode讨论区有很多有趣巧妙的思路,列举两个点赞率较高思路:
1)上下颠倒,然后转置
/*
* clockwise rotate
* first reverse up to down, then swap the symmetry
* 1 2 3 7 8 9 7 4 1
* 4 5 6 => 4 5 6 => 8 5 2
* 7 8 9 1 2 3 9 6 3
*/
2)转置,然后左右颠倒
若需要逆时针,则分别是:
1)左右颠倒,然后转置
2)转置,然后上下颠倒
[ref]
https://leetcode.com/discuss/20589/a-common-method-to-rotate-the-image
public class Solution { public void rotate1(int[][] matrix) { if (matrix == null || matrix.length == 0 || matrix[0].length == 0) return; int rowBeg = 0, rowEnd = matrix.length - 1; int colBeg = 0, colEnd = matrix[0].length - 1; while (rowBeg <= rowEnd) { int offset = colEnd - colBeg - 1; for (int j = 0; j <= offset; j++) { int save = matrix[rowBeg][colBeg + j]; matrix[rowBeg][colBeg + j] = matrix[rowEnd - j][colBeg]; matrix[rowEnd - j][colBeg] = matrix[rowEnd][colEnd - j]; matrix[rowEnd][colEnd - j] = matrix[rowBeg + j][colEnd]; matrix[rowBeg + j][colEnd] = save; } rowBeg++; rowEnd--; colBeg++; colEnd--; } } // first transpose, then flip the matrix horizontally public void rotate(int[][] matrix) { if (matrix == null || matrix.length == 0 || matrix[0].length == 0) return; int rows = matrix.length, cols = matrix[0].length; for (int i = 0; i < rows; i++) { for (int j = i + 1; j < cols; j++) { int tmp = matrix[i][j]; matrix[i][j] = matrix[j][i]; matrix[j][i] = tmp; } } int half = cols / 2; for (int i = 0; i < rows; i++) { for (int j = 0; j < half; j++) { int tmp = matrix[i][j]; matrix[i][j] = matrix[i][cols -1 - j]; matrix[i][cols -1 - j] = tmp; } } } }
发表评论
-
Leetcode - H-Index
2015-09-06 09:08 1131Given an array of citations (ea ... -
Leetcode - Integer to English Words
2015-09-04 20:53 1109[分析] 这题通过率之所以非常低是因为有很多corner ca ... -
Leetcode - Strobogrammatic Number III
2015-09-03 16:45 2197A strobogrammatic number is a n ... -
Leetcode - Basic Calculator II
2015-08-27 09:16 912mplement a basic calculator to ... -
Leetcode - Factorial Trailing Zeroes
2015-08-25 09:00 435[思路] 数乘积结果的后缀0,其实就是数结果中有多少个因子10 ... -
Leetcode - Ugly Number II
2015-08-24 22:54 1169[分析] 暴力的办法就是从1开始检查每个数是否是丑数,发现丑数 ... -
Leetcode - Excel Sheet Column Title
2015-08-24 10:24 644[分析] 十进制转26进制,需要注意的是26进制是以1为最小数 ... -
Leetcode - Max Points on a Line
2015-08-23 15:30 731[分析] 两条直线若包含一个公共点且斜率相同,则为同一条直线。 ... -
Leetcode - Fraction to Recurring Decimal
2015-08-23 10:05 474[分析] 处理int型整数运算时,为避免溢出,省事的做法就是内 ... -
Leetcode - Count Primes
2015-08-22 13:42 515[ref] https://en.wikipedia.org/ ... -
Leetcode - Strobogrammatic Number
2015-08-22 10:48 1098A strobogrammatic number is a n ... -
Leetcode - Add Binary
2015-08-21 09:28 477[分析] 从低位往高位逐位相加,就是这么一个简单的题却花了我一 ... -
Leetcode - Longest Consecutive Sequence
2015-08-20 21:20 494[分析] base version说几句: 数组题一定要考虑重 ... -
Leetcode - First Missing Positive
2015-08-20 07:45 661[分析] 将各个正数放入相应下标处,使之满足nums[nums ... -
Leetcode - Set Matrix Zeros
2015-08-19 20:55 561Given a m x n matrix, if an ele ... -
Missing Ranges
2015-08-19 09:48 518[分析] 此题若不考虑极大值极小值相关的corner case ... -
Leetcode - 3Sum Smaller
2015-08-18 22:12 1493Given an array of n integers nu ... -
Leetcode - Spiral Matrix II
2015-08-18 19:49 505Given an integer n, generate a ... -
Leetcode - Spiral Matrix
2015-08-18 09:50 434Given a matrix of m x n element ... -
Leetcode - Contains Duplicate II
2015-08-18 07:57 566Given an array of integers and ...
相关推荐
c语言入门 C语言_leetcode题解之48-rotate-image.c
js js_leetcode题解之48-rotate-image.js
- **2.1.16 Rotate Image** - 将一个正方形矩阵顺时针旋转90度。 - 实现思路:先转置矩阵,然后逐行反转。 - **2.1.17 Plus One** - 给定一个表示大整数的非负数数组,将其加一。 - 实现思路:从数组末尾开始...
- Rotate Image: 给定一个二维矩阵,将它顺时针旋转90度。 - Group Anagrams: 组合所有字母异位词,即将字母顺序不同但字母组合相同的单词分组。 - Pow(X, n): 实现x的n次幂运算,需要考虑各种边界情况和性能优化。 ...
leetcode category other hot keywords:Palindrome(mic), Subsequence Array 螺旋矩阵Spiral Matrix 顺时针打印矩阵 Next Permutation Product of Array Except Self 189.rotate-array 283.move-zero Range Sum ...
java lru leetcode :ice_cream: LeetCode Kindem 的个人 LeetCode 题解仓库,欢迎交流学习。 下面的目录中 ...Rotate Image 53 Maximum Subarray 55 Jump Game 56 Merge Intervals 64 Minimum Path Sum 73
leetcode 答案 LeetCode 该项目是 LeetCode 上的题解。 src/easy/路径下都是难度为 ..._48_RotateImage这个类名。运行效果如下图所示: 把这个类名复制一下,新建类的时候直接把类名粘贴过去就可以了。
# [LeetCode](https://leetcode.com/problemset/algorithms/) ![Language](https://img.shields.io/badge/language-Python%20%2F%20C++%2011-orange.svg) [![License]...
Rotate Image (M) -> 2 73. Set Matrix Zeroes (M) 1. Two Sum (E) 167. Two Sum II - Input array is sorted (E) 653. Two Sum IV - Input is a BST (E) -> 2 26. Remove Duplicates from Sorted Array (E) 27. ...
RotateImage 153 - SpiralMatrix 顺时针旋转矩阵 90 度。 首先翻转矩阵,交换对称153是直接的 01/31/2020 75 - SortColors 167 - TwoSum2 DCP 75 是一个双指针问题,如果当前项为 0,则使用 p1 p2 指向开始和结束,...
旋转图像](./Array/rotate-image.md) Heap 堆 [0023 合并K个排序链表](./Heap/merge-k-sorted-lists.md) String 字符串 [0006 Z字形变换](./String/zigzag-conversion.md) [0030 串联所有单词的子串](./String/...
* Rotate Image:该题目要求将二维矩阵旋转90度,实现方法使用了循环移位的方法。 五、其他 * Set Matrix Zeroes:该题目要求将矩阵中的零元素所在的行和列置零,实现方法使用了迭代算法。 * Search Insert ...
在本压缩包中,我们关注的是C++编程基础与LeetCode算法题目的结合,特别是针对LeetCode第48题——“旋转图像”(Rotate Image)的解决方案。这是一道典型的矩阵操作问题,对于理解C++中的数组和二维矩阵操作具有重要...
Rotate Image 344. Reverse String 414. Third Maximum Number 448. Find All Numbers Disappeared in an Array 66. Plus One 238. Product of Array Except Self 697. Degree of an Array 849. Maximize ...
题目如“RotateImage”、“FindAllAnagramsinaString”、“LongestPalindromicSubstring”、“SerializeandDeserializeBinaryTree”、“FirstUniqueCharacterinaString”都是对这些基础能力的考察。 3. **树和图的...
Rotate Image)** 这个问题涉及到二维数组的旋转操作。题目的目标是将一个矩阵顺时针旋转90度。一个有效的解决方案是首先对矩阵的上半部分进行翻转,然后对整个矩阵的每一行进行反向操作。这里的时间复杂度是O(n^2...
Rotate Image **知识点:** - **问题描述:** - 将一个 `n x n` 的图像顺时针旋转 90 度。 - **解决方案分析:** - **原地旋转:** - 先将矩阵沿主对角线翻转。 - 再将每一行反转。 - 逆时针旋转 90 度的...