【LeetCode】二分查找法(持续更新)

系列文章目录

前言

该文章总结力扣中使用二分查找分相关题目。

704.二分查找[简单]

题目描述:

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。

function search(nums, target) {
   let low = 0, high = nums.length - 1;
    while (low <= high) {
        const mid = Math.floor((high - low) / 2) + low;
        const num = nums[mid];
        if (num === target) {
            return mid;
        } else if (num > target) {
            high = mid - 1;
        } else {
            low = mid + 1;
        }
    }
    return -1;
};

69.x 的平方根[简单]

题目描述:

给你一个非负整数 x ,计算并返回 x 的 算术平方根 。

// 二分法
	function mySqrt (x) {
		if (isNaN(x)) return NaN;
		if(x===0 || x===1) return x;

		let low=0,high=x, pivot=(low+high)/2,lastPivot;
		do {
			if(Math.pow(pivot,2)>x) {
				high = pivot;
			} else if(Math.pow(pivot,2)<x) {
				low = pivot
			} else {
				return pivot
			}
			lastPivot = pivot;
			pivot = (low+high)/2;
		} 
		// 使用Number.EPSILON表示能够接受的最小误差范围
		while(Math.abs(pivot-lastPivot) >= Number.EPSILON);
		return pivot
	}
// 切线逼近法
	function mySqrt (x) {
		if (isNaN(x)) return NaN;
		if(x===0 || x===1) return x;

		let val=x,last;
		do{
			last = val;
			val = (val+x/val)/2
		}while(Math.abs(val- last) >=Number.EPSILON);
		return val;
	}

50.Pow(x, n)[中等]

题目描述:

实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,x^n )。

4.寻找两个正序数组的中位数

33.搜索旋转排序数组

34.在排序数组中查找元素的第一个和最后一个位置

153.寻找旋转排序数组中的最小值

162.寻找峰值

230.二叉搜索树中第K小的元素

287.寻找重复数

349.两个数组的交集

剑指 Offer 11.旋转数组的最小数字

剑指 Offer 53 - I.在排序数组中查找数字 I

剑指 Offer 53 - II.0~n-1中缺失的数字

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值