88.Merge Sorted Array
题目链接https://leetcode.com/problems/merge-sorted-array/description/
题目大意:给出两个有序数组,以及每个数组需要计算的元素个数,将其归并到第一个数组中。
法一:直接用传统归并办法,新开辟一个数组空间将其存放。
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 }