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     }
View Code

 

posted on 2017-09-10 19:52  二十年后20  阅读(152)  评论(0编辑  收藏  举报

导航