JavaはLeetCode 88を実現して2つの秩序配列を合併する
88.2つの配列を結合する
2つの秩序整数配列nums 1およびnums 2が与えられ、nums 2がnums 1に結合され、num 1が秩序配列になる.
説明:
初期化nums 1およびnums 2の要素数は、それぞれmおよびnである.nums 1にはnums 2の要素を保存するのに十分な空間(空間サイズがm+n以上)があると仮定できます.例:
入力:nums 1=[1,2,3,0,0],m=3 nums 2=[2,5,6],n=3
出力:[1,2,2,3,5,6]
2つの秩序整数配列nums 1およびnums 2が与えられ、nums 2がnums 1に結合され、num 1が秩序配列になる.
説明:
初期化nums 1およびnums 2の要素数は、それぞれmおよびnである.nums 1にはnums 2の要素を保存するのに十分な空間(空間サイズがm+n以上)があると仮定できます.例:
入力:nums 1=[1,2,3,0,0],m=3 nums 2=[2,5,6],n=3
出力:[1,2,2,3,5,6]
class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
int p = m-- + n-- - 1;
while (m >= 0 && n >= 0) {
nums1[p--] = nums1[m] > nums2[n] ? nums1[m--] : nums2[n--];
}
while (n >= 0) {
nums1[p--] = nums2[n--];
}
}
}