首页 > 其他分享 >合并两个有序数组

合并两个有序数组

时间:2024-02-03 23:24:54浏览次数:24  
标签:index 数组 int 合并 -- 有序 nums1 nums2

88. 合并两个有序数组

问题描述:给定两个有序整数数组 nums1nums2,将 nums2 合并到 nums1使得 num1 成为一个有序数组。

说明:

  • 初始化 nums1nums2 的元素数量分别为 mn
  • 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。
示例:
输入:
nums1 = [1,2,3,0,0,0], m = 3
nums2 = [2,5,6],       n = 3
输出: [1,2,2,3,5,6]
 public void merge(int[] nums1, int m, int[] nums2, int n) {
        //新数组的下标
        int index = m+n-1;
        int i = m-1;
        int j = n-1;
        while(i>=0 && j>=0){
            if(nums1[i] > nums2[j]){
                nums1[index] = nums1[i--];
            }else{
                nums1[index] = nums2[j--];
            }
            index--;
        }
        // nums1任然有未合并的元素,此时该操作可以省略,因为我们是使用num1存储结果的
        //while(i>=0){
        //    nums1[index--] = nums1[i--];
        //}

        // nums2任然有未合并的元素
        while(j>=0){
            nums1[index--] = nums2[j--];
        }
    }

参考:

标签:index,数组,int,合并,--,有序,nums1,nums2
From: https://www.cnblogs.com/i9code/p/18005388

相关文章