代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素

82 阅读1分钟

题目链接: 704.二分查找 | 27.移除元素

文章讲解: 704.二分查找 | 27.移除元素

视频讲解: 704.二分查找 | 27.移除元素

  • 做题结果:二分查找兜兜转转,移除元素磕绊了一下但还行

  • 感想:有思路,脑子里有动图,但没法顺顺利利实现出来。二分查找一看题就有思路,区间也知道,但就是写成了递归导致堆栈溢出(笑死)。还是得勤刷题、多写代码、熟能生巧。

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;
};