![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二分
AAS48
一起学算法
展开
-
剑指 Offer 04. 二维数组中的查找(二分技巧)
在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。如果目标比右上角元素大,则往下搜。如果目标比右上角元素小,则往左搜。可以用递归也可以用循环实现。此题用暴力做效率很低,虽然也发现了矩阵有序的特点,但不知如何更好的使用二分查找。所以我突然反应出来,原来右上角是一个比较的起始位置。原创 2022-09-16 13:39:01 · 104 阅读 · 0 评论 -
Leetcode 35. 搜索插入位置(二分)
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。输入: nums = [1,3,5,6], target = 5。输入: nums = [1,3,5,6], target = 2。输入: nums = [1,3,5,6], target = 7。请必须使用时间复杂度为 O(log n) 的算法。当low和high相等的时候有三种情况。本题是一道非常适合用二分查找解决的问题。...原创 2022-08-26 16:07:16 · 121 阅读 · 0 评论 -
小技巧:二分法模板总结
【问题描述】 随机输入一个1–100以内的数x,让你设计一个程序来找这个x 【思路】 直接暴力时间复杂度就是O(n)了,即一个一个顺序的找。 今天我们用时间复杂度仅为O(lgn)的二分法来找。 说起二分,其实我很少用这个东西,因为每次都可以直接顺序搜,谁又愿意去多写个算法二分搜呢?说白了就是懒。。。但现在我发现,这个东西在很多算法题中都有涉及,关键时刻如果不加上,很容易超时。而且,二分作为一种典型...原创 2019-03-16 15:36:40 · 259 阅读 · 0 评论 -
653. 两数之和 IV - 输入 BST(二分查找)
给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。 案例 1: 输入: 5 / \ 3 6 / \ \ 2 4 7 Target = 9 输出: True 案例 2: 输入: 5 / \ 3 6 / \ \ 2 4 7 Target = 28 输...原创 2019-07-10 15:21:48 · 144 阅读 · 0 评论 -
LeetCode: 278. 第一个错误的版本(二分查找)
【问题描述】 你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。 假设你有 n 个版本 [1, 2, …, n],你想找出导致之后所有版本出错的第一个错误的版本。 你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测...原创 2019-08-03 19:36:21 · 397 阅读 · 0 评论