leetcode Merge Sorted Array javascript

김_리트리버·2020년 9월 15일
0

[알고리즘]

목록 보기
15/47

포인터에 대한 개념을 확실하게 이해하지 못했다.

반복문을 사용할 때 주로 하나의 변수를 사용하여 index 를 변화시키곤 하였다.

그리고 대부분 index 가 0 부터 시작하는 것으로 주로 작성을 하여

뒤에서 부터 index 를 변화시키는 반복문 안에 각각의 배열의 index 를 가리키는 두개의 포인터를 생성할 생각을 하지 못했다.

var merge = function(nums1, m, nums2, n) {
    
    // 첫번째 배열에 숫자가 있는 마지막 index
    let first = m-1;
  // 두번째 배열에 숫자가 있는 마지막 index
    let second = n-1;
    
    // nums1 길이만큼 반복 
  // nums1 가장 마지막 index 부터 0 까지 
    for(let i = m+n-1; i>=0; i--)
        
        {
            // 두번째 배열의 index 가 0보다 작아지면 break; 
            if(second<0)
                {
                    break;
                }
            // 첫번째 배열에서 가장 큰 숫자가 두번째 배열에서 가장 큰 숫자 보다 크면 
          // nums1 끝자리에 집어넣고 숫자를 가리키는 index -- 
            if(nums1[first]>nums2[second])
                
                {
                    nums1[i] = nums1[first]
                first--;
                   
                }
                  // 두번째 배열에서 가장 큰 숫자가 첫번째 배열에서 가장 큰 숫자 보다 크면 
          // nums1 끝자리에 집어넣고 숫자를 가리키는 index -- 
            else {
                 nums1[i] = nums2[second]
                    second--;
                
            }
        }
};

profile
web-developer

0개의 댓글