88. 合并两个有序数组


88. 合并两个有序数组

public void merge(int[] nums1, int m, int[] nums2, int n) {
         // two get pointers for nums1 and nums2
        int p1 = m - 1;
        int p2 = n - 1;
        // set pointer for nums1
        int p = m + n - 1;

        // while there are still elements to compare
        while ((p1 >= 0) && (p2 >= 0))
        // compare two elements from nums1 and nums2
        // and add the largest one in nums1
        nums1[p--] = (nums1[p1] < nums2[p2]) ? nums2[p2--] : nums1[p1--];
        // add missing elements from nums2
        System.arraycopy(nums2, 0, nums1, 0, p2 + 1);///上面减1了,移动元素的个数。

// 作者:LeetCode
// 链接:https://leetcode-cn.com/problems/merge-sorted-array/solution/he-bing-liang-ge-you-xu-shu-zu-by-leetcode/

    &#125;
System.arraycopy(nums2, 0, nums1, m, n);//移动元素的个数
Arrays.sort(nums1);

文章作者:   future
版权声明:   本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 future !
 上一篇
todo todo
Arrays.sort 使用的排序算法&时间复杂度。
2021-02-26 future
下一篇 
25. Reverse Nodes in k-Group 25. Reverse Nodes in k-Group
25. Reverse Nodes in k-Groupk 个一组反转链表 public ListNode reverseKGroup(ListNode head, int k) &#123; ListNode ha
2021-02-25 future
  目录