import java.util.Arrays;
public class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
int p = m + n;
int i = m - 1;
int j = n - 1;
while (--p >= 0){
if(i < 0){
nums1[p] = nums2[j--];
}else if(j < 0){
break;
}else {
nums1[p] = (nums1[i] > nums2[j]) ? nums1[i--] : nums2[j--];
}
}
}
public void merge2(int[] nums1, int m, int[] nums2, int n) {
int p = m + n;
int i = m - 1;
int j = n - 1;
while (--p >= 0){
if(i >= 0 && j >= 0 && nums1[i] > nums2[j]){
nums1[p] = nums1[i--];
}else if(j >= 0){
nums1[p] = nums2[j--];
}
}
}
public static void main(String[] args){
int[] array1 = {1,5,7, -1,-1};
int m = 3;
int[] array2 = {4,6};
int n = 2;
new Solution().merge(array1, m, array2, n);
System.out.println(Arrays.toString(array1));
}
}
合并两个有序数组
最新推荐文章于 2025-01-06 20:00:59 发布