IOS 알고리즘 (기초 편) --- 재 구축 매트릭스

2 차원 배열 로 표 시 된 행렬 과 두 개의 정수 r 와 c 를 제시 하여 각각 재 구성 하고 자 하 는 행렬 의 줄 수 와 열 수 를 나타 낸다.재 구성 한 행렬 은 원본 행렬 의 모든 요 소 를 같은 줄 로 옮 겨 다 니 며 순서대로 채 워 야 합 니 다.주어진 매개 변 수 를 가 진 reshape 작업 이 가능 하고 합 리 적 이면 새로운 재 구축 행렬 을 출력 합 니 다.그렇지 않 으 면 원본 행렬 을 출력 합 니 다.
예:
입력 nums = [1, 2], [3, 4] r = 1, c = 4
출력 [1, 2, 3, 4]]
해석 줄 이 nums 를 옮 겨 다 니 는 결 과 는 [1, 2, 3, 4] 입 니 다.새로운 행렬 은 1 * 4 행렬 로 이전 요소 값 한 줄 한 줄 로 새 행렬 을 채 웁 니 다.
입력 nums = [1, 2], [3, 4] r = 2, c = 4 출력 [[1, 2], [3, 4]]]
해석 은 2 * 2 행렬 을 2 * 4 행렬 로 바 꿀 방법 이 없다.그래서 출력 원 매트릭스.
생각:
폭력 법
제목 의 뜻 은 이해 하기 어렵 지 않다. 우 리 는 제목 의 뜻 에 따라 기계 적 으로 번역 할 수 있다.
1. nums 요소 의 개수 와 r, c 요소 의 개수 가 같 는 지 판단 ① 다 르 고 ② 를 직접 제거 하 며 새 배열 을 반복 적 으로 삽입 합 니 다.
번역 되 지 않 은 버 전
class Solution {
    func matrixReshape(_ nums: [[Int]], _ r: Int, _ c: Int) -> [[Int]] {
        
        let sum = nums[0].count * nums.count, target = r * c
        if sum != target {
            return nums
        }
        
        var result:[[Int]] = [], temp:[Int] = []
        
        for arr in nums {
            for j in arr {
                temp.append(j)
                if temp.count == c {
                    result.append(temp)
                    temp.removeAll()
                }
            }
        }
        return result 
    }
}

번역 판
class Solution {
    func matrixReshape(_ nums: [[Int]], _ r: Int, _ c: Int) -> [[Int]] {
        
        //   nums    , r,c        
        let sum = nums[0].count * nums.count, target = r * c
        //        
        if sum != target {
            return nums
        }
        
        //   ,     
        // temp           
        var result:[[Int]] = [], temp:[Int] = []
        for arr in nums {
            for j in arr {
                // j nums            
                // temp   j
                temp.append(j)
                //   temp"  ",        
                if temp.count == c {
                    result.append(temp)
                    temp.removeAll()
                }
            }
        }
        //   
        return result 
    }
}

제목 출처: 버튼 (LeetCode) 감사 버튼 아빠:) IOS 알고리즘 모음 집 주소

좋은 웹페이지 즐겨찾기