Rotate the image by 90 degrees (clockwise).
Follow up:
Could you do this in-place?
下面這寫法要額外空間
1 2 3 4 5 6 7 8 9 10 11 12 13 | class Solution { public: void rotate(vector<vector<int>>& matrix) { int size=matrix.size(); vector<vector<int>> co(size,vector<int>(size,0)); co=matrix; for(int i=0;i<size;i++){ for(int j=0;j<size ;j++){ matrix[j][size-i-1]=co[i][j]; } } } }; |
------------
每次轉四個角落
一起轉 不用額外空間
要注意邊界
左上 是 col會跑
左下 是row會跑
右上 是row會跑
右下 是col會跑
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | class Solution { public: void rotate(vector<vector<int>>& matrix) { int size=matrix.size(); for(int row=0;row<size/2;row++){ for(int col=row;col<size-1-row;col++){ int temp=matrix[row][col];//left up matrix[row][col]=matrix[size-1-col][row];//left button matrix[size-1-col][row]=matrix[size-1-row][size-1-col];//right button matrix[size-1-row][size-1-col]=matrix[col][size-1-row];//right up matrix[col][size-1-row]=temp; } } } }; |
沒有留言:
張貼留言