1. 程式人生 > >【LeetCode】88. 合併兩個有序陣列(Merge Sorted Array)

【LeetCode】88. 合併兩個有序陣列(Merge Sorted Array)

英文練習 | 中文練習

題目描述: 給定兩個有序陣列,合併它們,合併之後的陣列依舊有序。

解題思路: 從後向前存放。

public void merge(int[] nums1, int m, int[] nums2, int n) {
        if(nums1 == null || nums2 == null) return;  
        
        while(m > 0 && n > 0){
            if(nums1[m - 1] >= nums2[n - 1]){
                nums1[
m + n - 1] = nums1[m - 1]; m--; }else{ nums1[m + n - 1] = nums2[n - 1]; n--; } } // 這一步可以省略 while(m > 0){ nums1[m - 1] = nums1[m - 1]; m--; } while
(n > 0){ nums1[n - 1] = nums2[n - 1]; n--; } }