LeetCode 일일 질문 566. 매트릭스 재구성

566. 매트릭스 재구성

MATLAB reshape에는 행렬을 크기가 다른 새로운 행렬로 변형 할 수 있지만 원래 데이터를 유지할 수 있는 매우 유용한 함수 가 있습니다.

매트릭스 표시는 2 차원 어레이, 2 명 개의 양의 정수에 의해 부여 r하고 c, 각 행렬의 열 번호를 요구하고 복원 된 행의 수를 나타낸다.

재구성 된 행렬은 동일한 행 순회 순서로 원래 행렬의 모든 요소를 ​​채워야합니다.

reshape연산 의 주어진 매개 변수 가 실행 가능하고 합리적이면 새로운 출력 행렬 리모델링이고, 그렇지 않으면 원래 행렬의 출력입니다.

예 1 :

输入: 
nums = 
[[1,2],
 [3,4]]
r = 1, c = 4
输出: 
[[1,2,3,4]]
解释:
行遍历nums的结果是 [1,2,3,4]。新的矩阵是 1 * 4 矩阵, 用之前的元素值一行一行填充新矩阵。

예 2 :

输入: 
nums = 
[[1,2],
 [3,4]]
r = 2, c = 4
输出: 
[[1,2],
 [3,4]]
解释:
没有办法将 2 * 2 矩阵转化为 2 * 4 矩阵。 所以输出原矩阵。

노트:

  • 주어진 행렬의 너비와 높이는 [1, 100] 범위에 있습니다.
  • 주어진 r과 c는 모두 양수입니다.

방법 1 :

문제 해결 아이디어

코드에 대한 간단한 질문

참조 코드

public int[][] matrixReshape(int[][] nums, int r, int c) {
    
    
    int R = nums.length, C = nums[0].length;
    if (R * C != r * c || (R == r && C == c)) {
    
    
        return nums;
    }

    int[][] ans = new int[r][c];
    for (int i = 0; i < R; i++) {
    
    
        for (int j = 0; j < C; j++) {
    
    
            int idx = i * C + j;
            ans[idx / c][idx % c] = nums[i][j];
        }
    }
    return ans;
}

의 결과
여기에 사진 설명 삽입

추천

출처blog.csdn.net/qq_27007509/article/details/113833187