代碼隨想錄打卡第一天

文章講解:代碼隨想錄

視頻講解:手把手帶你撕出正確的二分法 | 二分查找法 | 二分搜索法 | LeetCode:704. 二分查找_嗶哩嗶哩_bilibili

class Solution {
public:int search(vector<int>& nums, int target) {int left=0;//左邊界int right=nums.size()-1;//右邊界while(left<=right){int middle=(left+right)/2;if(nums[middle]<target){left=middle+1;}else if(nums[middle]>target){right=middle-1;}else{return middle;}}return -1;}

注意二分查找應用的條件 單調或者局部單調的數據或者別的數據結構。二分法要定義區間的左邊界和有邊界。并且根據區間的左右邊界的開閉設計的算法也不同。

題目是單調遞增的數據。解法注意是當中間節點不符合目標時,要更新查找區間。首先while()循環,既然left<=right;可以取等號,那么一定是左閉右閉的區間。接下來找到中間節點,當中間結點小于目標時,證明目標節點在右側,此時要更新左邊界,left=middld+1是因為nums[middle]已經查找過middle結點了,所以跳過他;當中間節點大于目標時,證明目標在左側,此時要更新右邊界,為什么是right=middle-1;同樣的,首先是因為已經查找過這個middle節點,不需要再查一遍了,并且因為是右閉的區間。

左閉右開的解法

public:int search(vector<int>& nums, int target) {int left=0;//左邊界int right=nums.size();//右邊界while(left<right){int middle=(left+right)/2;if(nums[middle]<target){left=middle+1;}else if(nums[middle]>target){right=middle;}else{return middle;}}return -1;}
};

【經典排序算法】二分查找法 (動圖演示 + C 語言代碼實現)_二分查找動圖-CSDN博客

雙指針法

class Solution {
public:int removeElement(vector<int>& nums, int val) {int slow=0;//慢指針//int fast=0;//快指針for(int fast=0;fast<nums.size();fast++){if(nums[fast]!=val){nums[slow]=nums[fast];slow++;}else{continue;}}return slow;}
};

?暴力解法就是兩次for循環。雙指針法就是用一次就行了。

  • 快指針:尋找新數組的元素 ,新數組就是不含有目標元素的數組
  • 慢指針:指向更新 新數組下標的位置

首先如果nums[fast]!=val,原地更新,比如所有的元素中都沒有我們要找的,那么遍歷一遍之后數組還原來的數據。

如果nums[fast]==val,證明找到了我們想要的元素,那么此時slow和fast指向的都是這個想要替代的元素,那么slow不變,fast繼續+1,繼續尋找下一個我們不想替換的元素,如果找到不是我們想要的元素,那么就讓slow索引下的元素等于fast索引下的元素,也就是用后面不是想要替代的元素去替代我們想要替代的元素。

最后fast遍歷完一次,slow就是剩下的元素個數。

依照此法已經解決的題目
26. 刪除有序數組中的重復項 - 力扣(LeetCode)

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

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

相關文章

時序數據庫全面解析與對比

文章目錄 1. 時序數據庫概述1.1 時序數據特點1.2 時序數據庫核心功能 2. 主流時序數據庫對比2.1 InfluxDB2.2 Prometheus2.3 TimescaleDB2.4 OpenTSDB2.5 TDengine 3. 全方位對比3.1 功能對比3.2 性能對比3.3 適用場景對比3.4 社區與生態 4. 選型建議4.1 根據數據規模選擇4.2 根…

【STM32CubeMX】ST官網MCU固件庫下載及安裝

用STM32CubeMX自帶的Updater更新固件包會遇到各種幺蛾子&#xff08;如下圖所示&#xff09;&#xff0c;所以干脆自己下載固件包&#xff0c;快速升級固件。 1. ST官網搜索你需要的MCU型號&#xff0c;并選擇需要的固件版本&#xff0c;我這里是H7的MCU所以就找H7&#xff08;…

青少年編程與數學 01-012 通用應用軟件簡介 13 網上學習資源

青少年編程與數學 01-012 通用應用軟件簡介 13 網上學習資源 一、什么是網上學習資源&#xff08;一&#xff09;網上學習資源的基本定義&#xff08;二&#xff09;網上學習資源的工作原理&#xff08;三&#xff09;網上學習資源的類型 二、網上學習資源的重要意義&#xff0…

Python Selenium 忽略證書錯誤

文章目錄 Python Selenium 忽略證書錯誤和忽略&#x1f527; **一、忽略 SSL 證書錯誤**1. **基礎配置&#xff08;適用于 Chrome/Firefox&#xff09;**2. **高級場景&#xff1a;指定證書指紋**3. **瀏覽器兼容方案** &#x1f507; **二、隱藏 DevTools 監聽提示**1. **禁用…

YOLOv8模型在RDK5開發板上的部署指南:.pt到.bin轉換與優化實踐

以下是針對在RDK5開發板(基于NVIDIA Jetson Orin平臺)部署YOLOv8模型的詳細技術指南,涵蓋從模型轉換、優化到部署的全流程: YOLOv8模型在RDK5開發板上的部署指南:.pt到.bin轉換與優化實踐 ——基于TensorRT的高性能嵌入式部署方案 第一章:技術背景與核心概念 1.1 RDK5開…

內網橫向-工作流

一、信息收集階段 操作 工具 / 命令 說明 系統基礎信息采集 systeminfo、whoami /user 查看系統版本、用戶 SID 等 域內用戶 / 組查詢 net user /domain、net group "domain admins" /domain 列出域用戶及管理員組 域控及網絡結構探測 nltest /dsgetdc、ip…

個人日記本小程序開發方案(使用IntelliJ IDEA)

個人日記本小程序開發方案(使用IntelliJ IDEA) 一、項目創建與環境配置 1. 新建項目 打開IDEA → New Project → JavaFX選擇JDK 11+版本添加必要依賴:<!-- pom.xml --> <dependencies><dependency><groupId

react快速開始項目模板

代碼倉庫 gitee 創建項目 首先保證安裝了node, 然后使用vite創建項目 vite npm create vite react-learn cd react-learn npm i 目錄結構 一個完整的前端項目需要: 狀態管理 在全局維護共有的狀態(數據), 讓頁面組件之間共享數據, 我們使用pinia路由 路由讓頁面之間可以…

scrapy+django+pyecharts+mysql 實現西安游客行為分析系統大屏_用戶畫像_空間分析_路線智能推薦

項目地址 link 此處展示部分結果 思路 描述性統計 可視化大屏 用戶畫像&#xff08;聚類&#xff0c;情感分析&#xff09; 空間分析

AC-DC-AC間接變頻電源設計方案(工頻50Hz→20KHz)

AC-DC-AC間接變頻電源設計方案(工頻50Hz→20KHz) 一、方案分析與選擇 1. 可選電路結構分析 方案1:二極管整流+Boost PFC+全橋逆變 優點: 輸入功率因數高(>0.99)直流電壓穩定可控輸出波形質量好缺點: 電路復雜度較高成本相對較高方案2:晶閘管相控整流+電容濾波+半…

七天學完十大機器學習經典算法-09.梯度提升算法:預測藝術的精進之道

接上一篇《七天學完十大機器學習經典算法-08.K均值聚類&#xff1a;無監督學習的萬能分箱術》 想象你在教一個學生解決復雜數學題&#xff1a;先讓他做基礎題&#xff0c;然后針對錯誤部分強化練習&#xff0c;再針對新錯誤繼續訓練...如此反復精進&#xff0c;直到完美掌握——…

數據庫(MYsql)

一、Mysql概述 數據庫&#xff1a;存儲數據的倉庫 &#xff0c;數據是有組織的進行存儲 數據庫管理系統&#xff1a;操縱和管理數據庫的大型軟件&#xff08;BBMS&#xff09; SQL&#xff1a;定義了一套操作關系型數據庫統一標準&#xff0c;操作關系型數據庫的編程語言 數…

【SpringBoot】Spring Boot + RESTful 技術實戰指南

在當今的軟件開發領域&#xff0c;Spring Boot 與 RESTful API 的結合已成為構建高效、可擴展 Web 應用的標配。本文將通過一個完整的項目示例&#xff0c;從知識鋪墊到部署上線&#xff0c;帶你一步步掌握 Spring Boot RESTful 的開發流程。 一、知識鋪墊 1.1 Spring Boot …

安卓中靜態和動態添加子 View 到容器

1.靜態添加子View 在XML布局文件中直接定義子View&#xff1a; <!-- activity_main.xml --> <LinearLayoutxmlns:android"http://schemas.android.com/apk/res/android"android:id"id/container"android:layout_width"match_parent"a…

【NLP】自然語言項目設計03

目錄 03模型構建 代碼架構核心設計說明 初步構建模型并進行訓練時遇到的一些問題 問題一&#xff1a;模型欠擬合 使用1 model - lstm 解釋使用lstm時無法正常的進行cudnn加速 使用2 model - transformer 項目簡介 訓練一個模型&#xff0c;實現歌詞仿寫生成 任務類型&am…

WebRTC(十二):DTLS

在 WebRTC 中的作用 DTLS&#xff08;Datagram Transport Layer Security&#xff09;是 TLS 的 UDP 版本&#xff0c;在 WebRTC 中用于&#xff1a; 安全協商加密密鑰對等驗證&#xff08;基于 X.509 證書 fingerprint&#xff09;為 SRTP/SRTCP 提供密鑰材料 WebRTC 不直接…

北大肖臻《區塊鏈技術與應用》學習筆記

區塊鏈學習筆記 \huge{區塊鏈學習筆記} 區塊鏈學習筆記 這是關于北京大學肖臻老師的《區塊鏈技術與應用》課程的學習筆記。 BTC的數據結構 hash pointers&#xff1a;既保存結構體的對應地址位置&#xff08;指針&#xff09;&#xff0c;又保存結構體對應映射的hash值&#…

MongoDB 驅動升級性能測試報告

測試背景 將 MongoDB Java 驅動從 4.11.5 升級至 5.5.1&#xff0c;并配合 Reactor Core 3.8.0-M4 進行性能對比測試。測試主要圍繞插入、查詢、更新和刪除四個核心操作進行。 環境配置 操作系統: Windows 11CPU: Intel Core? i7-14700F, 28 核心, 2.10 GHzJDK: OpenJDK 21.…

淘寶商品評論實時采集 API 接入指南:從零開始實戰開發

在電商數據分析領域&#xff0c;商品評論數據蘊含著用戶對產品的真實反饋&#xff0c;對商家優化產品、提升服務質量具有重要價值。本文將詳細介紹如何接入淘寶 API&#xff0c;實現商品評論的實時采集&#xff0c;從環境搭建到代碼實現進行全流程講解。 1. 淘寶api概述 淘寶…

ffpaly播放 g711a音頻命令

ffpaly播放 g711a音頻命令 ffplay 播放 G.711 A-law (8kHz, mono, 16bit) 音頻的命令&#xff1a; ffplay -f alaw -ar 8000 -ac 1 input.g711a 或ffplay -f alaw -ar 8000 -ac 1 audio_chn0.g711a 各參數說明&#xff1a; -f alaw&#xff1a;指定輸入音頻格式為 G.711 A-law…