-
做题结果:二分查找兜兜转转,移除元素磕绊了一下但还行
-
感想:有思路,脑子里有动图,但没法顺顺利利实现出来。二分查找一看题就有思路,区间也知道,但就是写成了递归导致堆栈溢出(笑死)。还是得勤刷题、多写代码、熟能生巧。
var search = function(nums, target) {
let i = 0, j = nums.length;
while (i < j) {
const midIdx = Math.floor((i+j) / 2);
const midVal = nums[midIdx];
if (target < midVal) {
j = midIdx;
} else if (target > midVal) {
i = midIdx + 1;
} else {
return midIdx;
}
}
return -1;
};
var removeElement = function(nums, val) {
let i = 0, j = 0;
const len = nums.length;
let deletedNum = 0;
while (j < len) {
if (nums[j] === val) {
j++;
deletedNum++;
continue;
}
nums[i] = nums[j];
i++;
j++;
}
return len - deletedNum;
};