初级算法 排序和搜索
合并两个有序数组
给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。
请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列
js
var merge = function(nums1, m, nums2, n) {
let nums3 = nums1.slice(0, m)
let p1 = p2 = p3 = 0
while( p3!= m && p2 != n){
if(nums2[p2] < nums3[p3]){
nums1[p1] = nums2[p2]
p2++
}else {
nums1[p1] = nums3[p3]
p3++
}
p1++
}
if(p2 == n){
while(p3 != m){
nums1[p1] = nums3[p3]
p1++
p3++
}
} else {
while(p2 !=n){
nums1[p1] = nums2[p2]
p1++
p2++
}
}
};
第一个错误的版本
js
var solution = function(isBadVersion) {
return function(n) {
let left = 1
let right= n
while(left < right){
let mid = left + Math.floor((right - left) / 2)
if(isBadVersion(mid)){
right = mid
}else {
left = mid + 1
}
}
return left
};
};