Merge Sorted Array

来源:互联网 发布:智能建站 软件 编辑:程序博客网 时间:2024/06/05 10:16

题目:

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.

思路:

注意题目Note部分说的nums1空间足够,所以我们一开始可以就可以用个指针k指向nums1的下标m+n-1处,然后nums1和nums2都从最后一个往前比,谁大就把谁放在k指向的位置。如果是m先减到-1,还要把nums2的剩余部分放到nums1上去,n先减到-1,就直接结束了。具体代码如下:


public class Solution {    public void merge(int[] nums1, int m, int[] nums2, int n) {        int k = m + n -1;     m -= 1;     n -= 1;    while(m >= 0 && n >= 0) {    if(nums1[m] > nums2[n]) {    nums1[k--] = nums1[m--];    } else {    nums1[k--] = nums2[n--];    }    }    while(n >= 0) {    nums1[k--] = nums2[n--];    }    }}



0 0
原创粉丝点击