LeetCode 88 Merge Sorted Array

来源:互联网 发布:淘宝客户流失 编辑:程序博客网 时间:2024/06/06 02:27

Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.

Note:

You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold additional elements from nums2. The number of elements initialized in nums1and nums2 are m and n respectively.


不动脑子的方法:

public void merge(int[] nums1, int m, int[] nums2, int n) {for (int i = m; i < m + n; i++)nums1[i] = nums2[i - m];Arrays.sort(nums1);}

根据数组有序的特性,以及可以随机访问的特性,两个数组都从后往前进行比较,然后从后往前放到nums1数组的相应位置。注意对边界的处理。

代码如下:

public void merge(int[] nums1, int m, int[] nums2, int n) {int p = m - 1;int q = n - 1;int cur = m + n - 1;while (q >= 0)nums1[cur--] = p >= 0 && nums1[p] > nums2[q] ? nums1[p--] : nums2[q--];}


0 0
原创粉丝点击