合并两个有序数组

来源:互联网 发布:d大 摇杆 淘宝店 编辑:程序博客网 时间:2024/05/11 18:23
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));    }}
0 0
原创粉丝点击