第2の解決策は、画像を回転させます

N所与×nの二次元マトリクスの画像を表します。

画像は、時計回りに90度回転させました。

説明:

あなたは直接2次元マトリックスの入力を変更する必要があることを意味場所で画像を回転させる必要があります。画像を回転させるために、別の行列を使用しないでください。

例1:

所与=マトリックス
[
[1,2,3]、
[4,5,6]、
[7,8,9]
]、

:それはなるように、入力行列のその場回転で
[
[7,4,1]、
[8,5,2]、
[9,6,3]
]
例2:

所与=マトリックス
[
[5 ,. 1 9,11]、
[2 ,. 4、8,10]、
[13 ,. 3 ,. 6 ,. 7]、
[15,14,12,16]
]、

それはなる、入力行列のその場回転:
[
[15、13、2、5]、
[14、3、4、1]、
[12、6、8、9]、
[16、7、10 ]
]

回答:

公共 ボイド回転(INT [] []行列){ 
    転置(マトリックス)
    (マトリックス)逆。
  } 
  パブリック 静的 ボイド転置(INT [] []行列){
     int型の長さ= matrix.length。
    以下のためにINT I 0 =; I <長さ、I ++ ){
       ためINT J = I; J <長あり、j ++ ){
         int型 TMP = 行列[j] [i]は、
        行列[J] [I] = 行列[I] [J]。
        行列[I] [J] = TMP。
      } 
    } 
  } 

  パブリック 静的 ボイド逆(INT [] []行列){
     int型の長さ= matrix.length。
    以下のためにINT I 0 =; I <長さ、I ++ ){
       ためINT J = 0; J <長さ/ 2、J ++ ){
         int型 TMP = 行列[I] [J]。
        行列[I] [J] =行列[I] [長-1- J]。
        行列[I] [長さ -1-J] = TMP。
      } 
    } 
  }
コードの表示

出典:滞在ボタン(LeetCode)
リンクします。https://leetcode-cn.com/problems/rotate-image

おすすめ

転載: www.cnblogs.com/wuyouwei/p/11976114.html