- Notifications
You must be signed in to change notification settings - Fork24
Open
Labels
Description
逆向双指针
- 借助双指针,原地修改,从后往前遍历数组,因为 nums1 的空间集中在尾部,从前往后可能会导致原有的数组元素被破坏
- 初始化 i、j 分别指向初始化元素的末尾位置,k 指向最终的 nums1 数组末尾位置
- 每次遍历时比较值的大小,进行填充即可
- 直到 i 和 j 都小于 0 时,遍历结束,返回 nums1
constmerge=function(nums1,m,nums2,n){leti=m-1letj=n-1letk=m+n-1while(i>=0||j>=0){if(i<0){nums1[k--]=nums2[j--]}elseif(j<0){nums1[k--]=nums1[i--]}elseif(nums1[i]<nums2[j]){nums1[k--]=nums2[j--]}else{nums1[k--]=nums1[i--]}}returnnums1}
- 时间复杂度:O(m + n)
- 空间复杂度:O(1)