leetcode 88 合并两个有序数组

一开始准备使用插入排序,后来想到两个数组排序,既然题中给出的数组预留了后半段空间,不如从后往前使用归并排序。
注意两个数组的长度可能不同,最后可能需要单独处理nums2,将他的值全部赋到num1中

class Solution {
public:
    void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
        if(n==0)
        return;
        int len=m+n-1;
        m--;
        n--;
        while(n>=0&&m>=0){
            if(nums1[m]>=nums2[n]){
                nums1[len]=nums1[m];
                m--;
            }
            else{
                nums1[len]=nums2[n];
                n--;
            }
            len--;
        }
        while(n>=0){
            nums1[len]=nums2[n];
            n--;
            len--;
        }
    }
};
leetcode 88 合并两个有序数组leetcode 88 合并两个有序数组 带带大程序员 发布了5 篇原创文章 · 获赞 0 · 访问量 251 私信 关注
上一篇:Arrays 类 常见用法详解


下一篇:Postgres 创建自增变量作为 id