LeetCode精選100題——第88題——合併兩個有序數組

在這裏插入圖片描述

class Solution {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        int[] nums1Copy=new int[m];
        System.arraycopy(nums1,0,nums1Copy,0,m);
        int p=0;
        int p1=0;
        int p2=0;
        while(p1<m&&p2<n){
            nums1[p++]=nums1Copy[p1]<nums2[p2]?nums1Copy[p1++]:nums2[p2++];
        }
        if(p1<m){
            System.arraycopy(nums1Copy,p1,nums1,p1+p2,m-p1);
        }
        if(p2<n){
            System.arraycopy(nums2,p2,nums1,p1+p2,n-p2);
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章