【代碼隨想錄二刷|704.二分查找、27.移除元素、977.有序數組的平方】

704.二分查找

題目鏈接:704. 二分查找 - 力扣(LeetCode)?

class Solution {
public:int search(vector<int>& nums, int target) {//不用二分查找,直接求// for(int i=0;i<nums.size();i++){//     if(nums[i]==target){//         return i;//     }// }// return -1;int left=0;int right=nums.size()-1;while(left<=right){int middle=(right+left)/2;if(target<nums[middle]){right=middle-1;}else if(target>nums[middle]){left=middle+1;}else return middle;}return -1;}
};

27.移除元素

題目鏈接:27. 移除元素 - 力扣(LeetCode)

class Solution {//暴力解法
public:int removeElement(vector<int>& nums, int val) {int size=nums.size();for(int i=0;i<size;i++){if(nums[i]==val){for(int j=i+1;j<size;j++){nums[j-1]=nums[j];}i--;size--;}}return size;}
};

這里的i--是因為比如現在是

【0,1,2,2,3】要刪的元素是2

? ? ? ? ? i? ?在指向2的位置,把后面的元素往前移,數組變成

【0,1,2,3】

? ? ? ? ? i? ?在指向后一個2的位置,如果不i--從1開始的話,就會直接往后遍歷i++,漏掉2

所以要i--;

size--當然就是移動一次就少一個元素,所以size要--;

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

雙指針感覺就是用fast指針來遍歷數組,用slow?指針來更新數組,最后slow指針指向的是更新后的數組。

977.有序數組的平方

題目鏈接:977. 有序數組的平方 - 力扣(LeetCode)

class Solution {//暴力解法
public:vector<int> sortedSquares(vector<int>& nums) {for(int i=0;i<nums.size();i++){nums[i]*=nums[i];}sort(nums.begin(),nums.end());return nums;}
};
class Solution {//雙指針解法
public:vector<int> sortedSquares(vector<int>& nums) {vector<int> result(nums.size(),0);int k=nums.size()-1;for(int i=0,j=nums.size()-1;i<=j;){if(nums[i]*nums[i]<nums[j]*nums[j]){result[k--]=nums[j]*nums[j];j--;}else{result[k--]=nums[i]*nums[i];i++;}}return result;}
};

感覺雙指針方法就是用i從前往后遍歷數組,j是從后往前遍歷數組,把大的賦值給新的數組

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

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

相關文章

基于Vue的工業設備大屏可視化模板(含設備地圖分布+宣傳模塊+報表展示+三維模型加載預覽)

場景 為實現工業設備可視化大屏需求&#xff0c;可實現基于地圖的設備數據管理&#xff0c;點擊具體設備可進行詳細介紹和三維模型展示。 可播放宣傳視頻&#xff0c;可展示PM數據報表等數據&#xff0c;可接受報警數據提醒、統計等數據。 基于現有開源平臺框架進行二次改造…

堆(Heap)優先級隊列(Priority Queue)

一、堆的概念堆&#xff08;Heap&#xff09;是一種特殊的基于樹的數據結構&#xff0c;通常分為最大堆和最小堆兩種類型。它滿足堆屬性&#xff1a;對于最大堆&#xff0c;父節點的值總是大于或等于其子節點的值&#xff1b;而對于最小堆&#xff0c;父節點的值總是小于或等于…

踩坑記錄:因版本不匹配導致 Boost 1.85 編譯失敗的完整解決過程

踩坑記錄&#xff1a;因版本不匹配導致 Boost 1.85 編譯失敗的完整解決過程 轉載請注明出處&#xff0c;歡迎評論區交流。 背景 最近在 Windows 11 VS2022 環境下嘗試用 b2 編譯 Boost 1.85.0&#xff0c;結果一路踩坑&#xff0c;最后發現罪魁禍首是 Boost.Build 自帶的 msv…

InfluxDB Line Protocol 協議深度剖析(二)

四、Line Protocol 寫入操作與實踐&#xff08;一&#xff09;HTTP API 寫入使用 HTTP API 是通過 Line Protocol 寫入數據到 InfluxDB 的常用方式。InfluxDB 1.x&#xff1a;請求方式為 POST&#xff0c;URL 格式為 “http://host:port/write?dbdatabase_name”。其中&#x…

負載均衡:提升業務性能的關鍵技術

一.負載均衡&#xff08;3.6 &#xff09;1.1.什么是負載均衡&#xff1a;負載均衡&#xff1a;Load Balance&#xff0c;簡稱LB&#xff0c;是一種服務或基于硬件設備等實現的高可用反向代理技術&#xff0c;負載均 衡將特定的業務(web服務、網絡流量等)分擔給指定的一個或多個…

【STM32項目】智能家居(版本1)

????大家好&#xff0c;這里是5132單片機畢設設計項目分享&#xff0c;今天給大家分享的是基于《基于STM32的智能家居設計》。 目錄 1、系統功能 2.1、硬件清單 2.2、功能介紹 2.3、控制模式 2、演示視頻和實物 3、系統設計框圖 4、軟件設計流程圖 5、原理圖 6、主…

OpenSCA開源社區每日安全漏洞及投毒情報資訊—2025年7月24日

2025年7月24日安全風險情報資訊在野漏洞風險&#xff08;CVE未收錄&#xff09;&#xff1a;1公開漏洞精選&#xff1a;2組件投毒情報&#xff1a;2在野漏洞風險&#xff08;CVE未收錄&#xff09;1.1 gemini-cli項目潛在命令注入漏洞項目詳情項目描述&#xff1a;gemini-cli是…

飛算 JavaAI 深度實戰:從老項目重構到全棧開發的降本增效密碼

飛算 JavaAI 深度實戰&#xff1a;從老項目重構到全棧開發的降本增效密碼引言正文一、智能引導模塊&#xff1a;老項目重構的 “手術刀” 級解決方案1.1 本地化智能分析&#xff1a;IDEA 插件實操演示1.1.1 &#x1f4cc; IDEA 插件安裝步驟1.1.1.1 首先打開idea工具&#xff0…

分布式推客系統開發全解:微服務拆分、傭金結算與風控設計

一、推客系統概述與市場背景推客系統&#xff08;也稱為分銷系統或社交電商系統&#xff09;已成為現代電商平臺和內容平臺的重要增長引擎。根據最新統計數據&#xff0c;2023年社交電商市場規模已突破3萬億元&#xff0c;占整體電商市場份額的25%以上。推客系統的核心價值在于…

Linux tcpdump 抓取udp 報文

一、tcpdump 支持命令選項tcpdump -i # 指定監聽網絡接口tcpdump -w # 將捕獲到的信息保存到文件中&#xff0c;且不分析和打印在屏幕tcpdump -r # 從文件中讀取數據tcpdump -n # 不把 ip 轉化成域名tcpdump -t # 在每行的輸出中不顯示時間tcpdump -v # 產生詳細的輸出tc…

Oracle數據塊8KB、OS默認認塊管理4KB,是否需調整大小為一致?

上班路上&#xff0c;腦中忽然閃現一個問題&#xff1a;Oracle數據庫塊大小&#xff08;8KB&#xff09;、操作系統文件系統塊大小&#xff08;4KB&#xff09;&#xff0c;為了減少IOPS&#xff0c;需不需要調整為一致&#xff1f;在數據塊保持一致的情況下&#xff0c;針對頻…

卡爾曼濾波器噪聲方差設置對性能影響的仿真研究

卡爾曼濾波器噪聲方差設置對性能影響的仿真研究 前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家,覺得好請收藏。點擊跳轉到網站。 1. 引言 卡爾曼濾波器是一種廣泛應用于信號處理、控制系統、導航系統等領域的遞歸估計算法。它通過對系…

“多線程修路:當count++變成災難現場”

1.現象 當我們操作一個線程池的時候&#xff0c;可能需要去計數&#xff0c;也就是統計count&#xff0c;那我們這里有一個疑問&#xff0c;會不會產生線程安全問題&#xff1f; 毫無疑問絕對會有線程安全問題。在線程池環境中&#xff0c;多個線程并發訪問和修改一個共享的 co…

GaussDB null的用法

1 null的定義null 空值代表丟失的未知數據。 默認情況下&#xff0c;表列可以保存 null 值。 本章解釋 is null 和 is not null 操作符。2 null值的贅述如果表中的列是可選的&#xff0c;那么我們可以插入一個新記錄或更新一個現有記錄&#xff0c;而無 需向列添加一個值。這意…

智慧農業新圖景:物聯網如何精準守護作物生長?

在傳統農業生產模式下&#xff0c;農民往往憑借經驗判斷作物生長需求&#xff0c;灌溉、施肥缺乏精準性&#xff0c;導致水資源浪費、土壤板結、作物產量與品質難以提升等問題。加之氣候變化無常&#xff0c;極端天氣頻發&#xff0c;給農業生產帶來諸多不確定性&#xff0c;傳…

[ComfyUI] -入門2- 小白零基礎搭建ComfyUI圖像生成環境教程

AI圖像生成已經成為AIGC(人工智能生成內容)領域的重要組成部分,而ComfyUI作為一款可視化的Stable Diffusion工作流工具,以其模塊化、高度自由化的特點吸引了越來越多創作者的關注。本文將手把手教你如何在Windows系統下,從零搭建屬于自己的ComfyUI圖像生成環境。 一、Comf…

java設計模式 -【單例模式】

單例模式的定義 單例模式&#xff08;Singleton Pattern&#xff09;是一種創建型設計模式&#xff0c;確保一個類只有一個實例&#xff0c;并提供一個全局訪問點。常用于需要控制資源或共享狀態的場景&#xff0c;例如數據庫連接、日志記錄器等 單例模式的實現方式 餓漢式&…

Flink 自定義類加載器和子優先類加載策略

子類優先加載Flink 默認采用了子優先&#xff08;Child-First&#xff09;的類加載策略來加載用戶代碼&#xff0c;以解決潛在的依賴沖突問題。我們可以通過源碼來證明這一點。ChildFirstClassLoader 的實現Flink 中負責實現“子優先”加載邏輯的核心類是 ChildFirstClassLoade…

Nginx 安全加固:如何阻止 IP 直接訪問,只允許域名訪問

在部署網站或 Web 應用時,我們通常會通過域名來訪問服務。然而,有時用戶可能會嘗試直接使用服務器的 IP 地址來訪問,這不僅可能繞過我們的域名特定配置(如 SSL 證書、重定向規則等),還可能導致不必要的安全風險或管理混亂。本文將介紹如何配置 Nginx,使其在通過 IP 地址…

服務端處于 TIME_WAIT 狀態的 TCP 連接,收到相同四元組的 SYN 后會發生什么?詳解

文章目錄一、先判斷 SYN 是否合法1、開啟「時間戳」機制1.1、合法 SYN1.2、非法 SYN2、關閉「時間戳」機制1.1、合法 SYN1.2、非法 SYN二、收到合法 SYN三、收到非法 SYN一、先判斷 SYN 是否合法 1、開啟「時間戳」機制 1.1、合法 SYN 客戶端的 SYN「序列號」比服務端「期望…