栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

LeetCode 88:合并两个有序数组

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

LeetCode 88:合并两个有序数组

链接

题目:

注意数组默认已经是升序。

方法一:

使用双指针p1 p2遍历两个数组;
过程和合并两个排序的链表类似
当p1 p2还未遍历到头,则从前向后判断p1 p2指针所指的元素,小的就放入r 数组;
当有任一数组到头了,则跳出循环,将未到头的那个数组继续添加至r 数组即可;
最后拷贝至nums1。

class Solution {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        int[] r=new int[nums1.length];
        int p1=0;
        int p2=0;
        int curr=0;
        while(p1
            if(nums1[p1]
                r[curr++]=nums1[p1++];
            }else{
                r[curr++]=nums2[p2++];
            }
        }
        //任一数组到头了
        while(p1
            r[curr++]=nums1[p1++];
        }
        while(p2
            r[curr++]=nums2[p2++];
        }
        System.arraycopy(r,0,nums1,0,n+m);
    }
}
方法二:Arrays.sort

先将nums2直接添加进nums1,然后使用Java自带API进行排序

class Solution {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        for(int i=0;i
            nums1[m+i]=nums2[i];
        }
        Arrays.sort(nums1);
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/995886.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号