解题思路:
指针从后向前走,时间复杂度为O(m+n)
提交代码:
class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
int p1=m-1,p2=n-1,p3=m+n-1;
while(p1>=0&&p2>=0)
nums1[p3--]=nums1[p1]>nums2[p2]?nums1[p1--]:nums2[p2--];
while(p1>=0)
nums1[p3--]=nums1[p1--];
while(p2>=0)
nums1[p3--]=nums2[p2--];
}
}
运行结果: