二分查找-P2249 【深基13.例1】查找

文章目錄

    • 參考代碼
    • 二分標準模板

在這里插入圖片描述

題目來源-洛谷網

參考代碼

#include<bits/stdc++.h>
using namespace std;
const int N = 1e6+5;
int m,n,a[N],b;
int find(int t)
{int l=1,r=n;while(l<r){int mid=(l+r)/2;//防止溢出 mid = l + (r-l) /2 ;if(a[mid]>=t) r=mid;//中間值比查找的值大或者相等,區間左移 else l=mid+1; }if(a[l]==t) return r;  //此時 l=r 都是要求的值 else return -1;
}
int main()
{int ans;cin>>n>>m;for(int i=1;i<=n;i++)cin>>a[i];for(int i=1;i<=m;i++){cin>>b;ans=find(b);cout<<ans<<" ";}return 0;
}

如果要求的是輸出編號的最大值
參考代碼

#include<bits/stdc++.h>
using namespace std;
const int N = 1e6+5;
int m,n,a[N],b;
int ans; 
int find(int t)
{int l=1,r=n;while(l<r){int mid=(l+r)/2;//防止溢出 mid = l + (r-l) /2 ;if(a[mid]<=t) l=mid+1;//中間值比查找的值大或者相等,區間左移 else r=mid; }if(a[l-1]==t) return l-1;  //區間在右移 ,右端的值不會滿足條件 else return -1;
}
int main()
{int ans;cin>>n>>m;for(int i=1;i<=n;i++)cin>>a[i];for(int i=1;i<=m;i++){cin>>b;ans=find(b);cout<<ans<<" ";}return 0;
}

萬能公式套用版

#include<bits/stdc++.h>
using namespace std;
const int N = 1e6+5;
int m,n,a[N],b;
int ans; 
int find(int t)
{int l=1,r=n;while(l<=r) //再求最小編號時,l r相鄰 比如 133 一定要注意最小編號是否能拿到 {int mid=(l+r)/2;//防止溢出 mid = l + (r-l) /2 ;if(a[mid]>=t) {ans = mid; //記錄值 r=mid-1; }else l=mid+1;}if(a[ans]==t) return ans;  else return -1;
}
int main()
{int ans;cin>>n>>m;for(int i=1;i<=n;i++)cin>>a[i];for(int i=1;i<=m;i++){cin>>b;ans=find(b);cout<<ans<<" ";}return 0;
}

二分標準模板

int find(int t)
{int l=1,r=n;while(l<=r) //一定是相等{int mid=(l+r)/2;//防止溢出 mid = l + (r-l) /2 ;if(a[mid]>=t) {ans = mid; //記錄值 r=mid-1; }else l=mid+1;}if(a[ans]==t) return ans;  else return -1;
}

求較小編號

int find(int t)
{int l=1,r=n;while(l<r) {int mid=(l+r)/2;//防止溢出 mid = l + (r-l) /2 ;if(a[mid]>=t) {r=mid; }else l=mid+1;}if(a[r]==t) return r;  //l也對else return -1;
}

求較大編號

int find(int t)
{int l=1,r=n;while(l<r) {int mid=(l+r)/2;//防止溢出 mid = l + (r-l) /2 ;if(a[mid]<=t) {l=mid+1;}else r=mid; }if(a[l-1]==t) return l-1;  //l會比準確值大些else return -1;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/83065.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/83065.shtml
英文地址,請注明出處:http://en.pswp.cn/web/83065.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

手寫muduo網絡庫(一):項目構建和時間戳、日志庫

引言 本文作為手寫 muduo 網絡庫系列開篇&#xff0c;聚焦項目基礎框架搭建與核心基礎工具模塊設計。通過解析 CMake 工程結構設計、目錄規劃原則&#xff0c;結合時間戳與日志系統的架構&#xff0c;為后續網絡庫開發奠定工程化基礎。文中附完整 CMake 配置示例及模塊代碼。 …

NLP學習路線圖(三十二): 模型壓縮與優化

一、 核心壓縮與優化技術詳解 1. 知識蒸餾:智慧的傳承(Knowledge Distillation, KD) 核心思想:“師授徒業”。訓練一個龐大、高性能但笨重的“教師模型”(Teacher Model),讓其指導訓練一個輕量級的“學生模型”(Student Model)。學生模型學習模仿教師模型的輸出行為(…

vue前端字典映射

1.界面展示 2.圖中狀態字段接收的數據如下 3.代碼轉換&#xff0c;添加計算屬性代碼 再在綁定屬性的地方做轉換 computed: {statusMap() {return {"-1": "已退號",1: "掛號",2: "接診",3: "已完診",};},},<m-input:spa…

基于 llama-factory進行模型微調

# GLM4-9B-chat Lora 微調. 介紹如何基于 llama-factory 框架&#xff0c;對 glm-4-9b-chat 模型進行 Lora 微調。Lora 是一種高效微調方法&#xff0c;深入了解其原理可參見博客&#xff1a;[知乎|深入淺出 Lora](https://zhuanlan.zhihu.com/p/650197598)。 ## 環境配置 在完…

不到 2 個月,OpenAI 火速用 Rust 重寫 AI 編程工具。尤雨溪也覺得 Rust 香!

一、OpenAI 用 Rust 重寫 Codex CLI OpenAI 已用 Rust 語言重寫了其 AI 命令行編程工具 Codex CLI&#xff0c;理由是此舉能提升性能和安全性&#xff0c;同時避免對 Node.js 的依賴。他們認為 Node.js “可能讓部分用戶感到沮喪或成為使用障礙”。 Codex 是一款實驗性編程代理…

Go 并發編程深度指南

Go 并發編程深度指南 Go 語言以其內置的并發原語而聞名&#xff0c;通過 goroutine 和 channel 提供了一種高效、安全的并發編程模型。本文將全面解析 Go 的并發機制及其實際應用。 核心概念&#xff1a;Goroutines 和 Channels 1. Goroutines (協程) Go 的輕量級線程實現&…

vue和uniapp聊天頁面右側滾動條自動到底部

1.vue右側滾動條自動到底部 <div ref"newMessage1"></div> <!-- 定義<div ref"newMessage1"></div>與<div v-for”item in list“>循環同級定義-->定義方法 scrollToBottomCenter(){this.$nextTick(() > {this.$re…

iOS 項目怎么構建穩定性保障機制?一次系統性防錯經驗分享(含 KeyMob 工具應用)

崩潰、內存飆升、后臺任務未釋放、頁面卡頓、日志丟失——穩定性問題&#xff0c;不一定會立刻崩&#xff0c;但一旦積累&#xff0c;就是“上線后救不回來的代價”。 穩定性保障不是某個工具的功能&#xff0c;而是一套貫穿開發、測試、上線全流程的“觀測分析防范”機制。 …

JMeter函數整理

"_csvRead"函數 csvRead函數是從外部讀取參數&#xff0c;csvRead函數可以從一個文件中讀取多個參數。 下面具體講一下如何使用csvread函數&#xff1a; 1.新建一個csv或者text文件&#xff0c;里面保存要讀取的參數&#xff0c;每個參數間用逗號相隔。每行表示每一組…

深入理解 React Hooks

在當今的 React 開發中,Hooks 已經成為構建函數組件的核心工具。自 React 16.8 版本引入以來,Hooks 徹底改變了開發者編寫 React 組件的方式,使得狀態管理和副作用處理變得更加簡潔和直觀。本文將全面介紹 React 提供的各種 Hooks,從基礎的 useState 和 useEffect,到高級的…

Doris-2:單虛擬機上非docker化安裝Doris實驗環境

Doris-2:單虛擬機上非docker化安裝Doris實驗環境 1.安裝1.1.環境說明1.2.基礎準備1.2.1.JDK1.2.2.操作系統配置(使用root或者有權賬戶)1.2.2.1.修改環境變量1.2.2.2.修改虛擬內存區域1.2.2.3.關閉swap1.2.2.4.關閉防火墻1.2.2.5.創建用戶和組1.3.安裝doris1.3.1.解壓1.3.2.配置…

C# SqlSugar:依賴注入與倉儲模式實踐

C# SqlSugar&#xff1a;依賴注入與倉儲模式實踐 在 C# 的應用開發中&#xff0c;數據庫操作是必不可少的環節。為了讓數據訪問層更加簡潔、高效且易于維護&#xff0c;許多開發者會選擇成熟的 ORM&#xff08;對象關系映射&#xff09;框架&#xff0c;SqlSugar 就是其中備受…

Razor編程中@Helper的用法大全

文章目錄 第一章&#xff1a;Helper基礎概念1.1 Helper的定義與作用1.2 Helper的基本語法結構1.3 Helper與HtmlHelper的區別 第二章&#xff1a;基礎Helper用法2.1 無參數Helper2.2 帶簡單參數的Helper2.3 帶默認值的參數2.4 使用模型作為參數 第三章&#xff1a;高級Helper用法…

Python-正則表達式(re 模塊)

目錄 一、re 模塊的使用過程二、正則表達式的字符匹配1. 匹配開頭結尾2. 匹配單個字符3. 匹配多個字符4. 匹配分組5. Python 代碼示例 三、re 模塊的函數1. 函數一覽表2. Python 代碼示例1&#xff09;search 與 finditer2&#xff09;findall3&#xff09;sub4&#xff09;spl…

前端知識導圖

前端知識導圖 參考&#xff1a;字節標準 前端知識導圖 通用基礎 1、編程語言 HTML CSS JS TS 2、計算機基礎 計算機網略 數據結構 算法&#xff1a;二分查找、十大排序、二叉樹先中后和層次遍歷、集合交并集、leetcode刷題經驗 編譯構建 webpack & vite 應用基礎 開…

moon游戲服務器-demo運行

下載地址 https://github.com/sniper00/MoonDemo redis安裝 Redis-x64-3.0.504.msi 服務器配置文件 D:\gitee\moon_server_demo\serverconf.lua 貌似不修改也可以的&#xff0c;redis不要設置密碼 windows編譯 安裝VS2022 Community 下載premake5.exe放MoonDemo\server\moon 雙…

Webpack性能優化:構建速度與體積優化策略

一、構建速度優化 1、??升級Webpack和Node.js?? ??優化效果??&#xff1a;Webpack 4比Webpack 3構建時間降低60%-98%。??原因??&#xff1a; V8引擎優化&#xff08;for of替代forEach、Map/Set替代Object&#xff09;。默認使用更快的md4哈希算法。AST直接從Loa…

ajax學習手冊

Ajax 通俗易懂學習手冊 目錄 Ajax 基礎概念XMLHttpRequest 詳解Fetch API (現代方式)處理不同數據格式錯誤處理和狀態碼Ajax 高級技巧實戰項目案例最佳實踐 Ajax 基礎概念 什么是 Ajax&#xff1f; Ajax Asynchronous JavaScript And XML 通俗解釋&#xff1a; Ajax 就像…

人工智能學習02-安裝環境

人工智能學習概述—快手視頻 人工智能學習02-安裝—快手視頻 Python安裝 Python安裝分為兩種方法&#xff0c;一是從官網(https://www.python.org/)下載Python工具(比如python-2.7.msi)進行安裝&#xff0c;并設置Path環境變量&#xff1b;二是下載工具Anaconda集成環境進行安…

電腦開不了機,主板顯示67碼解決過程

文章目錄 現象分析內存條問題BIOS設置問題其它問題 解決清理內存條金手指所需工具操作步驟注意事項 電腦在運行過程中&#xff0c;顯示內存不足&#xff0c;重啟電腦卻無法啟動。 現象 System Initialization 主板風扇是轉的&#xff0c;也有燈光顯示&#xff0c;插上屏幕&am…