매트릭스 반전

2110 단어 금전
제목 설명 에는 NxN 매트릭스 로 표 시 된 그림 이 있 습 니 다. 이 그림 은 픽 셀 마다 int 로 표 시 됩 니 다. 추가 메모리 공간 을 차지 하지 않 은 상태 에서 (캐 시 행렬 을 사용 하지 않 음) 그림 을 시계 방향 으로 90 도 회전 시 키 는 알고리즘 을 만 드 십시오.NxN 의 행렬 과 행렬 의 단계 N 을 지정 합 니 다. 회전 후의 NxN 행렬 을 되 돌려 주 십시오. N 이 500 보다 적 고 이미지 요 소 는 256 보다 작 습 니 다.테스트 샘플: [1, 2, 3], [4, 5, 6], [7, 8, 9], 3 반환: [7, 4, 1], [8, 5, 2], [9, 6, 3]]
먼저 위아래 로 뒤 집 고, 다시 주 대각선 에 따라 뒤 집 습 니 다.
1 2 3                 7 8 9            7 4 1

4 5 6    —>          4 5 6  --->      8 5 2

7 8 9                 1 2 3            9 6 3
class Transform {
public:
vector<vector<int> > transformImage(vector<vector<int> > mat, int n) {
        //    
        for(int i = 0; i < n/2; ++i){
            for(int j = 0; j < n; ++j){
                swap(mat[i][j], mat[n-1-i][j]);
            }
        }
        //      
        for(int i = 0; i < n; ++i){
            for(int j = i+1; j < n; ++j){
                swap(mat[i][j], mat[j][i]);
            }
        }
        return mat;
    }
};

좋은 웹페이지 즐겨찾기