首页 > 其他分享 >二分搜索

二分搜索

时间:2024-07-27 22:28:41浏览次数:7  
标签:二分 必有 target mid 峰值 搜索 ans

二分搜索

2024年7月25日

21:27

 

 

 

  1. 正常二分思想
  2. 重点是遇到不同的数怎么定边界,怎么记录答案。
    1. 特殊情况:没有数字或者只有一个数,直接判断返回
    2. 先定一个ans=-1用于记录答案,l、r记录左右边界
    3. 看中点数值,比target小,说明比target的的数字在右边,l = mid+1
    4. 比target大,ans=mid,还需要看看左边是不是有比这个mid还小但是符合》=num的,r = mid-1
    5. 不断重复,直到没有数为止。
  3. 和2思路相同
  4. 寻找任意一个峰值------》可以得出一个经验,某侧必有,那么用二分。
    1. -1和N默认为极小数,看0位置和n-1位置是不是峰值,是就返回
    2. 如果都不是,那么在左侧,从0到1是上升的,从N-2到N-1是下降的,则在中间必有解,取中点继续检查,l=0,r = N-2
    3. mid = l+(r-l)/2,
      1. 如果mid是峰值,就返回mid,
      2. 如果mid-1到mid上升,那么右侧必有,l=mid+1
      3. 如果mid到mid+1下降,那么左侧必有,r =mid-1

例题:https://leetcode.cn/problems/find-peak-element/

标签:二分,必有,target,mid,峰值,搜索,ans
From: https://www.cnblogs.com/saopigqwq233/p/18327628

相关文章

  • 利用Elasticsearch实现地理位置、城市搜索服务
    最近用到一些简单的地理位置查询接口,基于当前定位获取用户所在位置信息(省市区),然后基于该信息查询当前区域的......提供服务。然后就自己研究了下GIS,作为一个程序员。自己能不能实现这个功能呢?答案当然是可以。立即开干。思路:找到数据,写入数据库,利用Elasticsearch强大的搜索能力......
  • 手把手教你集成GraphRag.Net:打造智能图谱搜索系统
        在人工智能和大数据发展的背景下,我们常常需要在项目中实现知识图谱的应用,以便快速、准确地检索和使用信息。        今天,我将向大家详细介绍如何在一个新的.NET项目中集成GraphRag.Net,这是一个参考GraphRag实现的.NET版本,能够实现图谱数据的存储、检索、和问......
  • Java实现一颗二叉搜索树的增删查改操作
    Java实现一颗二叉搜索树的增删查改操作:树节点:packagetest.tree;publicclassTreeNode{privateintval;privateTreeNodeleft;privateTreeNoderight;publicTreeNode(intval){this.val=val;this.left=null;th......
  • 稠密向量+稀疏向量+全文搜索+张量重排=最佳检索RAG?
    RAG中的混合检索如下图:为什么要混合搜索(multi-wayrecall)?越来越多的人认为,仅仅依靠向量搜索,通常是密集向量,可能并不总是产生令人满意的结果。当用户的特定查询关键字与存储的数据不精确匹配时,这种限制就会变得明显。这是因为向量本身不能表示精确的语义信息:向量可以表示一......
  • 算法力扣刷题记录 五十八【701.二叉搜索树中的插入操作】
    前言本文是二叉搜索树操作。二叉树篇继续。一、题目阅读给定二叉搜索树(BST)的根节点root和要插入树中的值value,将值插入二叉搜索树。返回插入后二叉搜索树的根节点。输入数据保证,新值和原始二叉搜索树中的任意节点值都不同。注意,可能存在多种有效的插入方式,只......
  • 整体二分
    没啥好说的概念,直接看题目。MKTHNUM-K-thNumber考虑如果我们对每个操作进行二分怎么做。显然是对这个区间不大于二分值\(mid\)的数统计个数,看个数\(num\)和\(k\)的大小关系。如果\(num\)更大,证明\(mid\)大了,如果\(num\)更小,证明\(mid\)小了。然后我们考虑推......
  • Chrome 版本 127 需要选择默认搜索引擎
    Chrome更新到版本127后,我的所有Selenium脚本都会引发错误,因为在启动浏览器时我总是必须选择默认搜索引擎。我使用ChromeDriver127.0.6533.72。有人遇到同样的问题吗?是的,Chrome127及其对应的ChromeDriver版本在首次启动时引入了选择默认搜索引擎的提示,这可......
  • OpenAI深夜丢炸弹硬杠谷歌搜索
    这几年科技变革太快,AI更是飞速发展,作为一名IT老兵,使用过的搜索引擎也是一换再换。这不,刚消停了一段时间的OpenAI又丢出一个炸弹SearchGPT,直接跟谷歌掀桌子了。1、谷歌搜索的无奈早年只能用用百度搜索或者其余小众搜索,虽说有不少广告,搜索到的东西也不够精准,只能忍着了。后来找了......
  • 使用 pymongo 在 mongodb 中按 ObjectId 搜索文档
    我需要使用pymongo通过python搜索ObjectId,但总是收到错误。importpymongofrompymongoimportMongoClientfrompymongoimportObjectIdgate=collection.find({'_id':ObjectId(modem["dis_imei"])})有什么想法如何搜索吗?在提供的代码片段中,似乎在尝试使......
  • OpenAI推出SearchGPT:革新搜索体验的新工具
    引言原文链接在信息爆炸的时代,搜索引擎已经成为人们日常生活中不可或缺的工具。然而,传统的搜索引擎在理解复杂查询和提供准确答案方面仍有许多不足。为了解决这一问题,OpenAI与20240725推出了SearchGPT原型,将生成式AI与传统搜索相结合,为用户提供更智能、更相关的搜索体验。......