leetcode面試題01.07:旋轉矩陣

本題可以先找規律。

在這裏插入圖片描述
遍歷藍色框數字,找到對應的其餘三個數字,交換即可。
假設當前爲matrix[i][j],
其餘三個數分別爲:
[j][m_size-i-1]
[m_size-i-1][m_size-j-1]
[m_size-j-1][i]

代碼:

   void rotate(vector<vector<int>>& matrix) {
        int m_size = matrix.size();
        for(int i = 0; i < m_size/2; i ++)
        {
            for(int j = 0; j < (m_size+1)/2; j++)
            {
               int temp =  matrix[i][j];
               matrix[i][j] =   matrix[m_size-j-1][i] ;
               matrix[m_size-j-1][i]  = matrix[m_size-i-1][m_size-j-1];
               matrix[m_size-i-1][m_size-j-1] = matrix[j][m_size-i-1];
               matrix[j][m_size-i-1] = temp;
            }
        }

收穫:懂得如何交換四個數,只需要保存一個temp,按照順序來即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章