- 中国地下乐队
  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 )
		- LATER Revisions:
		  SCHEDULED: <2023-05-12 Fri ++2w>
		  :LOGBOOK:
		  * State "DONE" from "LATER" [2023-04-28 Fri 16:45]
		  :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);
			        }
			      }
			    }
			  }
			  ```
- LATER 购物清单 [[Shopping lists]]
	- LATER 香熏/香氛
	- LATER 耳塞
- DONE 查英语成绩
  SCHEDULED: <2023-04-25 Tue>
- DONE 报名
  SCHEDULED: <2023-05-08 Mon>
- DONE 写乐理练习的作业