Leetcode-88 合并两个有序数组

使用内置排序函数,时间复杂度On^2

java 复制代码
class Solution {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        int j=0,i=m;
        while(j<n){
            nums1[i++]=nums2[j++];
        }
        Arrays.sort(nums1);
    }
}

新建一个临时数组用于放排序后的元素,再将临时数组赋值给nums1,此方法仅遍历一次两个数组,时间复杂度Om+n

java 复制代码
class Solution {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        int k=m+n;
        int[] temp=new int[k];
        for(int index=0,nums1Index=0,nums2Index=0;index<k;index++){
            if(nums1Index>=m){
                temp[index]=nums2[nums2Index++];
            }else if(nums2Index>=n){
                temp[index]=nums1[nums1Index++];
            }else if(nums1[nums1Index]<nums2[nums2Index]){
                temp[index]=nums1[nums1Index++];
            }else{
                temp[index]=nums2[nums2Index++];
            }
        }
        for(int i=0;i<k;i++){
            nums1[i]=temp[i];
        }
    }
}
相关推荐
JAI科研8 分钟前
Deepseek Agent Harness教程(二) | DeepSeek Harness 设计思路
人工智能·深度学习·算法·机器学习·自然语言处理·transformer·vllm
还不秃顶的计科生13 分钟前
具身智能论文学习10:π0: A Vision-Language-Action Flow Model for General Robot Control
人工智能·深度学习·算法·机器学习·语言模型·vla·vlm
Dr.kangder16 分钟前
嵌入式面试总结(二十一)——C语言关键字
c语言·开发语言·面试·职场和发展·架构·虚拟化
happyprince21 分钟前
02-具体观 — Cordis 算法与实现剖析
算法
烬羽25 分钟前
求第 K 大,为什么反而要用最小堆?
javascript·数据结构·算法
没落之王1 小时前
易学使者郑氏正脉郑冰推演马航事件
大数据·人工智能·算法·机器学习·可用性测试
阿部多瑞 ABU1 小时前
告别手工核图:基于 .NET + MuPDFCore 的 CAD 等轴测 PDF 材料表提取与新旧版本对比实战
后端·算法·ui·pdf·c#
郝学胜-神的一滴1 小时前
并查集深度入门:从玄学抽象到 QuickFind & QuickUnion 源码实战
数据结构·c++·python·程序人生·算法·软件开发
比奇堡裤头村1 小时前
统计学习方法——决策树
算法·决策树·学习方法
灵晔君2 小时前
【Linux】进程控制(一)——进程创建、进程终止与进程等待
linux·c语言·算法