Combine two sequenced arrays
December 1, 2024Less than 1 minute
Combine two sequenced arrays
/*双指针逆序处理,时间复杂度来为O(m+n),空间复杂度为O(1)*/
public static void mergeFastLessSpace(int[] nums1, int m, int[] nums2, int n) {
int k = m+n;
for(int index = k-1,nums1Index = m-1,nums2Index = n-1;
index >= 0;
index--){
if(nums1Index < 0){/*nums1已经取完,完全取nums2的值即可*/
nums1[index] = nums2[nums2Index--];
}else if(nums2Index < 0){/*nums2已经取完,完全取nums1的值即可*/
break;
}else if(nums1[nums1Index] > nums2[nums2Index]){/*nums1的元素值大于nums2,取nums1值*/
nums1[index] = nums1[nums1Index--];
}else{/*nums2的元素值大于等于nums1,取nums2的值*/
nums1[index] = nums2[nums2Index--];
}
}
}