class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
//先把 nums2数组 放在 nums1数组 后面,然后再排序
for (int i = 0; i < n; i++) {
nums1[m + i] = nums2[i];
}
int[] nums3 = new int[m + n];
int p1 = 0;
int p2 = m;
int k = 0;
while (p1 < m && p2 < m + n) {
if (nums1[p1] < nums1[p2]) {
nums3[k] = nums1[p1];
p1++;
} else {
nums3[k] = nums1[p2];
p2++;
}
k++;
}
if (p1 == m) {
while (p2 < m + n) {
nums3[k++] = nums1[p2++];
}
} else if (p2 == m + n) {
while (p1 < m) {
nums3[k++] = nums1[p1++];
}
}
System.arraycopy(nums3, 0, nums1, 0, nums3.length);
}
}
LeetCode-88:合并两个有序数组(Java语言实现)
最新推荐文章于 2024-07-14 16:07:02 发布