Leetcode Rotate Image in Javascript
質問する
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, which means you have to modify the input 2D matrix directly. DO NOT allocate another 2D matrix and do the rotation.
に近づく
テーマと画像だけを見て、新しいレイアウトを生成することができて、元のレイアウトをブラウズして、新しいレイアウトを埋めて、簡単に問題を解くことができます.
1列の値が逆で、1行の値であれば簡単に問題を解決できますが、問題の制限条件は次のとおりです.
DO NOT allocate another 2D matrix and do the rotation.
これを確認したら、新しい配列のためにメモリを
allocate
に設定しないでください.そのため、元の配列を修正しなければなりません.上の写真をよく見てみましょう.
次に、最初に元のアレイが対称になるように、アレイ内の要素を変更します.では、アレイです.
[1,4,7] , [2,5,8], [3,6,9]
こうなります.次に、各配列の要素を反転します.[7,4,1], [8,5,2], [9,6,3]
正解が並んだ答えのコードは以下の通りです.var rotate = function(matrix) {
const size = matrix.length;
let start = 0;
// transpose
for(let i=0; i<size; i++){
for(let j=start; j<size; j++){
if(i !== j){
let temp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = temp;
}
}
start++;
}
// reverse
for(let i=0; i<size; i++){
for(let j=0; j<size/2; j++){
let temp = matrix[i][j];
matrix[i][j] = matrix[i][size-j-1];
matrix[i][size-j-1] = temp;
}
}
return matrix;
};
Reference
この問題について(Leetcode Rotate Image in Javascript), 我々は、より多くの情報をここで見つけました https://velog.io/@peppermint100/Leetcode-Rotate-Image-in-Javascriptテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol