LeetCode 배열 칼럼: 88. 두 개의 질서 있 는 배열 (자바 버 전) 을 합 칩 니 다.

2024 단어
제목 설명: 두 개의 질서 있 는 정수 배열 nums 1 과 nums 2 를 지정 하여 nums 2 를 nums 1 에 합 쳐 num 1 을 질서 있 는 배열 로 만 듭 니 다.
설명: nums 1 과 nums 2 를 초기 화 하 는 요소 의 수량 은 각각 m 와 n 입 니 다.nums 1 에 nums 2 의 요 소 를 저장 할 공간 이 충분 하 다 고 가정 할 수 있 습 니 다.
예시:
입력: nums 1 = [1, 2, 3, 0, 0, 0, 0], m = 3, nums 2 = [2, 5, 6], n = 3 출력: [1, 2, 2, 3, 5, 6]
문제 풀이 방향: 데이터 구조 수업 에서 질서 있 는 링크 의 합병 알고리즘 을 배 웠 기 때문에 이 알고리즘 을 참고 하여 먼저 새로운 배열 res 를 만들어 야 합 니 다. 이 동시에 nums 1 과 nums 2 두 배열 을 옮 겨 다 니 며 두 배열 의 작은 요 소 를 res 에 부여 하고 특정한 배열 이 다 옮 겨 다 닐 때 까지 다른 배열 의 나머지 요 소 를 res 에 순서대로 부여 해 야 합 니 다.
복잡 도 분석: 시간 복잡 도: O (m + n);공간 복잡 도: O (m + n)
다음은 AC 코드 를 붙 입 니 다.
class Solution {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        int []res = new int[m+n];
        int i=0,j=0,cnt=0;
        //      ,         res  
        while(iif(nums1[i]else
                res[cnt++] = nums2[j++];
         }
         //               res  
        if(i>=m)
            while(jif(j>=n)
            while(i//       nums1  ,     res      nums1 
        for(i=0;i

좋은 웹페이지 즐겨찾기