代码随想录算法训练营第一天| javascript |二分查找_LeetCode704, 移除元素_LeetCode27

二分查找

核心在于边界值的确定

左闭右闭区间

 //实现左闭右闭区间的写法
```
var search = function(nums, target) {
    let left = 0;
    let right = nums.length - 1;
    while (left <= right) {
        let mid = Math.floor((right + left) / 2)
        if(nums[mid] > target) {
            right = mid - 1;//左区间查找
        }else if(nums[mid] < target) {
            left = mid + 1;//右区间查找
        }else{
            return mid;
        }
    }
    return -1;
};
```

左闭右开区间

 //实现左闭右开区间的写法
var search = function(nums, target) {
    let left = 0;
    let right = nums.length;//右边界本身是取不到的,所以下标我们这里设置为nums.length
    while (left < right) {
        let mid = Math.floor((right + left) / 2)
        if(nums[mid] > target) {
            right = mid;//左区间查找
        }else if(nums[mid] < target) {
            left = mid + 1;//右区间查找
        }else{
            return mid;
        }
    }
    return -1;
};

移除元素

题目链接:https://leetcode.cn/problems/remove-element/

文章讲解:https://programmercarl.com/0027.%E7%A7%BB%E9%99%A4%E5%85%83%E7%B4%A0.html

视频讲解:https://www.bilibili.com/video/BV12A4y1Z7LP

javascript中本身没有双指针的概念,实现移除元素比较简单,就是常说的数组去重

var removeElement = function(nums, val) {
    let k = 0;
    for(let i = 0; i < nums.length; i++) {
            if(nums[i] !== val) {
                nums[k++] = nums[i]
            }  
    }
    return k;
};
posted @ 2023-03-15 22:42  Snowy1899  阅读(21)  评论(0)    收藏  举报