- 中国地下乐队 collapsed:: true - 退格 backspace (psychedelic rock - 兵马司(发行) - Re tros (daft funk - Dream can - Leetcode - Rotate Image id:: 64422d1f-5db3-435d-ab4e-2b9fe5fd47cd collapsed:: true - Times: - Time when completed: 14:28 - Time taken to complete: 15 mins ( with solution in mind ) - DONE Revisions: SCHEDULED: <2023-05-26 Fri> :LOGBOOK: * State "DONE" from "LATER" [2023-04-28 Fri 16:45] * State "DONE" from "LATER" [2023-05-23 Tue 20:26] :END: - - Tags: - Algorithms: #math - Data structures: #array - Difficulty: #difficulty_easy - Platforms: #leetcode - Links: - [link to the problem](https://leetcode.com/problems/rotate-image/description/) - Problem: - You are given an `n x n` 2D `matrix` representing an image, rotate the image by **90** degrees (clockwise). - You have to rotate the image [**in-place**](https://en.wikipedia.org/wiki/In-place_algorithm), which means you have to modify the input 2D matrix directly. **DO NOT** allocate another 2D matrix and do the rotation. - Examples: - https://assets.leetcode.com/uploads/2020/08/28/mat1.jpg - https://assets.leetcode.com/uploads/2020/08/28/mat2.jpg - ``` Example 1: Input: matrix = [[1,2,3],[4,5,6],[7,8,9]] Output: [[7,4,1],[8,5,2],[9,6,3]] Example 2: Input: matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]] Output: [[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]] ``` - Constraints: - `n == matrix.length == matrix[i].length` - `1 <= n <= 20` - `-1000 <= matrix[i][j] <= 1000` - Thoughts: - Intuition: - The solution is tricky, which requires you to use math. - In order to do this, first, transpose, then reflect the matrix. - Solution: - java - ```java class Solution { private void swap(int[][] matrix, int a, int b, int x, int y) { int temp = matrix[a][b]; matrix[a][b] = matrix[x][y]; matrix[x][y] = temp; } public void rotate(int[][] matrix) { // transpose and reflect for (int i = 0; i < matrix.length; i++) { for (int j = 0; j < i; j++) { swap(matrix, i, j, j, i); } } for (int i = 0; i < matrix.length; i++) { for (int j = 0; j < matrix.length / 2; j++) { swap(matrix, i, j, i, matrix.length - j - 1); } } } } ``` - DONE 购物清单 [[Shopping lists]] - DONE 香熏/香氛 - DONE 耳塞 - DONE 查英语成绩 SCHEDULED: <2023-04-25 Tue> - DONE 报名 SCHEDULED: <2023-05-08 Mon> - DONE 写乐理练习的作业