leetcode : Rotate Image
runtime 0 ms, beats 100% of cpp submissions
O(n^2) solution with explanation
tags: math
🔗 link
📖 description
給定一個 2 維陣列,將陣列旋轉 90 度,要求空間複雜度為 O(1) ,也就是必須 in place 的完成。
ex. Input: matrix = [[1,2,3],[4,5,6],[7,8,9]] Output: [[7,4,1],[8,5,2],[9,6,3]]
🧠 solution
找到規律並模擬旋轉的操作,以底下的範例做解釋
在這題中,我們必須把 1 的位置給 13 ,假設 1 位在 i,j ,則藉由推倒,13 應該位在 n-j-1,i ,以此類推把四個角都推出來。
要注意的點是 i 只需要換到 (n+1)/2 ,因為當第一列換完後,會再從第二列開始換,此時第一行沒換ˋ到的部分就會被換到,而 j 只需要換到 n/2 ,因為只需要換到陣列的一半,後面就會被替換完成。
⏳ time complexity
總時間複雜度 **
📝 code
1 | class Solution { |