为达到O(m+n)的复杂度,思路是比较大小,选用两个数组中哪个数组的数填入。同时为了避免数组越界,这里选用了三目运算符。
class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
int len=m+n-1;
m--;
n--;
while(len>=0){
if(n>=0&&m>=0)
nums1[len--]=(nums1[m]>=nums2[n])?nums1[m--]:nums2[n--];
else if(m<0)
nums1[len--]=nums2[n--];
else
nums1[len--]=nums1[m--];
}
}
}