LeetCode88. 合并两个有序数组

一、题目描述

二、解法

思路:就是归并排序的 “合并”部分。

class Solution {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        // 把nums1拷贝一份
        int[] temp = new int[m];
        for (int i = 0; i < m; i++) {
            temp[i] = nums1[i];
        }
        int p1 = 0, p2 = 0, p = 0;
        while (p1 < m && p2 < n) {
            nums1[p++] = temp[p1] < nums2[p2] ? temp[p1++] : nums2[p2++];
        }
        while (p1 < m) nums1[p++] = temp[p1++];
        while (p2 < n) nums1[p++] = nums2[p2++];
    }
}
原文地址:https://www.cnblogs.com/HuangYJ/p/14092115.html