LeetCode 59. Spiral Matrix II(헬리컬 매트릭스 II java)

1868 단어
정수 n을 정하고 1부터 n2까지 모든 원소를 포함하며 원소가 시계 순서대로 나선형으로 배열된 정사각형 행렬을 생성합니다.

예:


입력: 3 출력: [1, 2, 3], [8, 9, 4], [7, 6, 5]]

아이디어:

  • 테마 코드는 나선 매트릭스 1에 따라 e외 변수에 점차적으로 증가하는 원소 값을 저장하고 n이 0 또는 1인 경계값 처리를 주의하면 된다.전송문
  • 코드:

        public int[][] generateMatrix(int n){
            if(n == 0) return new int[0][0];
            if(n == 1) {
                int[][] n1 = new int[1][1];
                n1[0][0] = 1;
                return n1;
            }
            int matrix[][] = new int[n][n];
            int i = 0, j = 0, wid = n, high = n, go = 0,k = 1;
            while (k < n * n) {
                //           
                switch (go) {
                //     ,      
                case 0:
                    while (j < wid) {
                        matrix[i][j] = k;
                        k++;
                        j++;
                    }
                    j--;
                    i++;
                    go++;
                    break;
                case 1:
                    while (i < high - 1) {
                        matrix[i][j] = k;
                        k++;
                        i++;
                    }
                    go++;
                    break;
                case 2:
                    while (j >= n - wid) {
                        matrix[i][j] = k;
                        k++;
                        j--;
                    }
                    j++;
                    i--;
                    go++;
                    high--;
                    break;
                case 3:
                    while (i > n - high) {
                        matrix[i][j] = k;
                        k++;
                        i--;
                    }
                    go = 0;
                    wid--;
                    break;
                }
            }
            return matrix;
        }
    

    요약:

  • 처음 이 문제를 만났을 때 많은 시간을 들여 디버깅을 했지만 완성된 후에 본 문제와 유사한 문제를 만났을 때 쓰기가 간단했다
  • n이 0이면 빈 행렬로, 1이면 단일 원소 값이 1인 행렬
  • 좋은 웹페이지 즐겨찾기