数组合并
2024年04月09日
一、合并两个有序数组
1.1 逆向双指针
思路: 可以指针设置为从后向前遍历,每次取两者之中的较大者放进 nums1
的最后面
实现
function merge(nums1,m,nums2,n){
let p1 = m-1;
let p2 = n-1;
let tail = m+n-1;
let curr;
while(p1 >= 0 || p2>= 0){
if(p1 === -1){
curr = nums2[p2--];
}else if(p2 === -1){
curr = nums1[p1--];
}else if(nums1[p1]>nums2[p2]){
curr = nums1[p1--];
}else{
curr = nums2[p2--]
}
nums1[tail--] = curr;
}
}