88.Merge Sorted Array

題目連接https://leetcode.com/problems/merge-sorted-array/description/數組

題目大意:給出兩個有序數組,以及每一個數組須要計算的元素個數,將其歸併到第一個數組中。ide

法一:直接用傳統歸併辦法,新開闢一個數組空間將其存放。spa

 1 public static void merge(int[] nums1, int m, int[] nums2, int n) {
 2         int i = 0;
 3         int j = 0;
 4         int[] nums = new int[m + n];
 5         int k = 0;
 6         for( ; i < m && j < n; ) {
 7             if(nums1[i] < nums2[j]) {
 8                 nums[k++] = nums1[i++];
 9             }
10             else if(nums1[i] > nums2[j]) {
11                 nums[k++] = nums2[j++];
12             }
13             else {
14                 nums[k++] = nums1[i];
15                 nums[k++] = nums1[i];
16                 i++;
17                 j++;
18             }
19         }
20         while(i < m) {
21             nums[k++] = nums1[i++];
22         }
23         while(j < n) {
24             nums[k++] = nums2[j++];
25         }
26         for(int t = 0; t < m + n; t++) {
27             nums1[t] = nums[t];
28         }
29     }
View Code
相關文章
相關標籤/搜索