알고리즘 (1) - 이미지 변환
:
, 。 。
1:
matrix =
[
[1,2,3],
[4,5,6],
[7,8,9]
],
, :
[
[7,4,1],
[8,5,2],
[9,6,3]
]
2:
matrix =s
[
[ 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,11]
]
나 는 행렬 이 한 줄 씩 바 뀌 면 되 는 것 같다 는 것 을 발견 했다.
[1,2], [00 01] [00 10]
[3,4] [10 11] [01 11]
after:
[3,1] [10 00]
[4,2] [11 01]
matrix =
[
[1,2,3], [00 01 02] [00 10 20]
[4,5,6], [10 11 12] [01 11 21]
[7,8,9] [20 21 22] [22 21 20]
],
그리고 코드 를 쓰기 시 작 했 습 니 다. 좀 졸 렸 는 지 전 치 를 쓸 때 제 가 이렇게 썼 습 니 다.
for (int i=0;i){
for (int j=0;j){
tem = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = tem;
//System.out.println(matrix[i][j] + " " + matrix[j][i]);
}
}
그리고 행렬 전체 가 변 하지 않 은 것 같 아 요. 그래 요. 변 하지 않 은 것 같 아 요. 변 하지 않 은 것 같 아 요!
돌 고 돌 아 갔 기 때문에 어떻게 돌 리 는 지 보 자. 사실 매번 대각선 한쪽 만 뒤 집 으 면 된다.
[1,2], [00 01] [00 10]
[3,4] [10 11] [01 11]
after:
[3,1] [10 00]
[4,2] [11 01]
matrix =
[
[1,2,3], [00 01 02] [00 10 20]
[4,5,6], [10 11 12] [01 11 21]
[7,8,9] [20 21 22] [22 21 20]
],
마지막 은 나의 해답 이다.
class Solution {
public void rotate(int[][] matrix) {
int tem = 0;
for (int i=0;i){
for (int j=i+1;j// i=1
tem = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = tem;
//System.out.println(matrix[i][j] + " " + matrix[j][i]);
}
}
for (int i=0;i){
for (int j=0;j2;j++){
tem = matrix[i][matrix.length-1-j];
matrix[i][matrix.length-1-j] = matrix[i][j];
matrix[i][j] = tem;
}
}
}
}
전체 테스트
public class S4{//bywu
public void rotate(int[][] matrix) {
S4 solution = new S4();
int tem = 0;
for (int i=0;i){
for (int j=i+1;j// i=1
tem = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = tem;
//System.out.println(matrix[i][j] + " " + matrix[j][i]);
}
}
for (int i=0;i){
for (int j=0;j2;j++){
tem = matrix[i][matrix.length-1-j];
matrix[i][matrix.length-1-j] = matrix[i][j];
matrix[i][j] = tem;
}
}
System.out.println("after");
solution.print_array(matrix);
}
public void print_array(int[][] arr){
for (int i=0;i<4;i++){
for (int j=0;j<4;j++){
System.out.print(" "+arr[i][j]);
}
System.out.println("");
}
}
public static void main(String[] args){
S4 solution = new S4();
int[][] matrix = {
{ 5, 1, 9,11},
{ 2, 4, 8,10},
{13, 3, 6, 7},
{15,14,12,16}
};
solution.print_array(matrix);
solution.rotate(matrix);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.