ACWing——算法基礎課

置頂思考:
算法的本質是什么樣的思想?
這種思想可以解決哪類問題?
有沒有其他的解決思路?
關注數值范圍,思考可不可以針對性解決問題?

在這里插入圖片描述

目錄

https://leetcode.cn/circle/discuss/RvFUtj/

滑動窗口與雙指針(定長/不定長/單序列/雙序列/三指針)

二分算法(二分答案/最小化最大值/最大化最小值/第K小)

單調棧(基礎/矩形面積/貢獻法/最小字典序)

網格圖(DFS/BFS/綜合應用)

位運算(基礎/性質/拆位/試填/恒等式/思維)

圖論算法(DFS/BFS/拓撲排序/最短路/最小生成樹/二分圖/基環樹/歐拉路徑)

動態規劃(入門/背包/狀態機/劃分/區間/狀壓/數位/數據結構優化/樹形/博弈/概率期望)

常用數據結構(前綴和/差分/棧/隊列/堆/字典樹/并查集/樹狀數組/線段樹)

數學算法(數論/組合/概率期望/博弈/計算幾何/隨機算法)

貪心與思維(基本貪心策略/反悔/區間/字典序/數學/思維/腦筋急轉彎/構造)

鏈表、二叉樹與一般樹(前后指針/快慢指針/DFS/BFS/直徑/LCA)

排序

785.快速排序
原地算法,不需要額外開辟空間
const int N = 1000010;可以寫成 1e6+10;
c++中用scanf接受數據很快,不要用cin
Java中用buffer read,不要用scanner
基準元素取端點在某些數據增強的情況下會超時,建議取中點
平均nlogn,最差n方

const int N=1e6+10;
int q[N];
void quickSort(int q[],int low,int high){if(low>=high)return;int i=low-1;int j=high+1;int temp=q[low+high>>1];while(i<j){do i++;while(temp>q[i]);do j--;while(temp<q[j]);if(i<j) swap(q[i],q[j]);}quickSort(q,low,j);quickSort(q,j+1,high);}

787. 歸并排序
妥妥nlogn

const int N = 1e6+10;
int q[N];
int temp[N];void mergeSort(int q[],int low,int high){if(low>=high) return;int mid=low+high>>1;int k=0;int i=low;int j=mid+1;mergeSort(q,low,mid);mergeSort(q,mid+1,high);while(i<=mid && j<=high) temp[k++]=q[i]<=q[j]?q[i++]:q[j++];while(i<=mid) temp[k++]=q[i++];while(j<=high) temp[k++]=q[j++];for (i=low,j=0; i <= high; i ++,j++ ) q[i]=temp[j];	
}

788. 逆序對的數量(歸并)
歸并子題
注意范圍超限,要使用long long
從兩個元素起,計算逆序對數,子數組排序,外部的相對位置關系并沒有改變

二分法

剪枝思想,縮小遍歷范圍,以降低時間復雜度
有單調性的題目一定可以二分法降低時間復雜度
無單調性有時也可以二分
二分問題的關鍵是邊界問題,需要考慮邊界范圍采用兩套模板
二分問題無非以下兩類:
左邊界問題:找滿足某個條件的第一個數——找大于等于某個數的第一個位置——r=mid;l=mid+1;
右邊界問題:找滿足某個條件的最后一個數——找小于等于某個數的最后一個位置——l=mid;r=mid-1;

//查找左邊界 SearchLeft 簡寫SL
int SL(int l, int r)
{while (l < r){int mid = l + r >> 1;if (check(mid)) r = mid; //找左邊界,r就要等于midelse l = mid + 1; }   return l;
}//查找右邊界 記憶方面:有加必右減(有+1,r就要mid-1)
int SR(int l, int r) 
{while (l < r){                   int mid = l + r + 1 >> 1; //需要+1 防止死循環if (check(mid)) l = mid;//找右邊界,l要等于midelse r = mid - 1; }return r; 
}

789. 數的范圍(二分)

790. 數的三次方根
逆向思維,將求根的問題轉化為,求冪的問題
printf(“%lf”,flo)默認輸出六位小數
當你要求六位精度時,計算時要增加兩位,至少求八位精度

高精度整數問題

加法:位數1e6
減法:位數1e6
乘法:位數1e6,數值1e9
除法
python和java自帶高精度函數
c++的vector作為數組存儲有size屬性,很方便
‘9’-‘0’=9(數字)
適當添加引用&,可以防止整個數組的復制,加快速度
思想:把數的每一位存入數組,從低位到高位存,個位放a[0]的位置
在這里插入圖片描述

注意學習Vector

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

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

相關文章

私鑰連接服務器(已經有服務器私鑰

前言&#xff1a;假設我們已經有了服務器的私鑰&#xff0c;我們怎么配置呢&#xff1f; 下面我會從vsc的配置角度來寫 ? 步驟一&#xff1a;準備工作 安裝 VS Code&#xff08;如果還沒裝&#xff09; &#x1f449; https://code.visualstudio.com/ 安裝插件&#xff1a;Re…

Redis LFU 策略參數配置指南

一、基礎配置步驟? 設置內存上限? 在 redis.conf 配置文件中添加以下指令&#xff0c;限制 Redis 最大內存使用量&#xff08;例如設置為 4GB&#xff09;&#xff1a; maxmemory 4gb選擇 LFU 淘汰策略? 根據鍵的作用域選擇策略&#xff1a; # 所有鍵參與淘汰 maxmemory-…

嵌入式 C 語言面試核心知識點全面解析:基礎語法、運算符與實戰技巧

在嵌入式面試中&#xff0c;C 語言基礎是重中之重。本文針對經典面試題進行詳細解析&#xff0c;幫助新手系統掌握知識點&#xff0c;提升面試應對能力。 一、數據結構邏輯分類 題目 在數據結構中&#xff0c;從邏輯上可以把數據結構分為&#xff08; &#xff09;。 A、動態…

11.AOP開發

十一、AOP開發 1、Spring Boot實現 AOP 11.1.1、SpringBootAop簡介 Spring Boot的AOP編程和Spring框架中AOP編程的唯一區別是&#xff1a;引入依賴的方式不同,其他內容完全一樣 Spring Boot中AOP編程需要引入aop啟動器&#xff1a; <!--aop啟動器--> <dependency…

【網絡入侵檢測】基于源碼分析Suricata的PCAP模式

【作者主頁】只道當時是尋常 【專欄介紹】Suricata入侵檢測。專注網絡、主機安全,歡迎關注與評論。 1. 概要 ?? 本文聚焦于 Suricata 7.0.10 版本源碼,深入剖析其 PCAP 模式的實現原理。通過系統性拆解初始化階段的配置流程、PCAP 數據包接收線程的創建與運行機制,以及數據…

.NET 10 中的新增功能

.NET 運行時 .NET 10 運行時引入了新功能和性能改進。 關鍵更新包括&#xff1a; 數組接口方法反虛擬化&#xff1a;JIT 現在可以取消虛擬化和內聯數組接口方法&#xff0c;從而提高數組枚舉的性能。數組枚舉去抽象化&#xff1a;改進功能以通過枚舉器減少數組迭代的抽象開銷…

盲注命令執行(Blind Command Execution)

一、核心原理 1. 無回顯命令執行的本質 盲命令執行&#xff08;Blind Command Execution&#xff09;是一種攻擊形式&#xff0c;攻擊者通過注入系統命令到Web應用或后端系統中&#xff0c;但無法直接獲取命令執行結果。盲命令執行的本質在于攻擊者無法直接看到執行結果&#x…

Linux多線程技術

什么是線程 在一個程序里的多執行路線就是線程。線程是進程中的最小執行單元&#xff0c;可理解為 “進程內的一條執行流水線”。 進程和線程的區別 進程是資源分配的基本單位&#xff0c;線程是CPU調度的基本單位。 fork創建出一個新的進程&#xff0c;會創建出一個新的拷貝&…

計算機組成原理實驗(1) 算術邏輯運算單元實驗

實驗一 算術邏輯運算單元實驗 一、實驗目的 1、掌握簡單運算器的數據傳輸方式 2、掌握74LS181的功能和應用 二、實驗內容 1、不帶進位位邏輯或運算實驗 2、不帶進位位加法運算實驗 3、實驗指導書2.15實驗思考 三、實驗步驟和結果 實驗內容一&#xff1a;不帶進位…

Android將啟動畫面實現遷移到 Android 12 及更高版本

如果在 Android 11 或更低版本中實現自定義啟動畫面&#xff0c;請遷移應用遷移到 SplashScreen API 以獲取幫助 確保其在 Android 12 及更高版本中正確顯示。 從 Android 12 開始&#xff0c;在所有應用的冷啟動和溫啟動期間&#xff0c;系統都會應用 Android 系統的默認啟動…

692. 前K個高頻單詞(map的練習)

目錄 1、題目分析 2.解題思路 3.代碼實現 4.總結 1、題目分析 2.解題思路 首先它給出我們一個string&#xff0c;讓我們提取出它們中出現次數最多的。利用map將word一個一個存入其中&#xff0c;沒有就插入&#xff0c;有了就1&#xff0c;這樣我們就得到了key_value&#…

如何創建極狐GitLab 議題?

極狐GitLab 是 GitLab 在中國的發行版&#xff0c;關于中文參考文檔和資料有&#xff1a; 極狐GitLab 中文文檔極狐GitLab 中文論壇極狐GitLab 官網 創建議題 (BASIC ALL) 創建議題時&#xff0c;系統會提示您輸入議題的字段。 如果您知道要分配給議題的值&#xff0c;則可…

day32 學習筆記

文章目錄 前言一、霍夫變換二、標準霍夫變換三、統計概率霍夫變換四、霍夫圓變換 前言 通過今天的學習&#xff0c;我掌握了霍夫變換的基本原本原理及其在OpenCV中的應用方法 一、霍夫變換 霍夫變換是圖像處理中的常用技術&#xff0c;主要用于檢測圖像中的直線&#xff0c;圓…

圖解YOLO(You Only Look Once)目標檢測(v1-v5)

1. YOLO系列整體介紹 YOLO屬于深度學習經典檢測方法中的單階段&#xff08;one - stage&#xff09;類型&#xff0c;與兩階段&#xff08;two - stage&#xff0c;如Faster - rcnn、Mask - Rcnn系列&#xff09;方法相對。 不同模型性能 單階段方法的最核心優勢是速度非常快…

C# 類型、存儲和變量(靜態類型和dynamic關鍵字、可空類型)

本章內容 C#程序是一組類型聲明 類型是一種模板 實例化類型 數據成員和函數成員 預定義類型 用戶定義類型 棧和堆 值類型和引用類型 變量 靜態類型和dynamic關鍵字 可空類型 靜態類型和dynamic關鍵字 你可能巳經注意到了&#xff0c;每一個變量都包括變量類型。這樣編譯器就可…

信奧賽之c++基礎(初識循環嵌套與ASCII密碼本)

?? 游樂園編程奇遇記——循環嵌套與ASCII密碼本 ?? 第一章:摩天輪與旋轉木馬——循環嵌套 ?? 游樂場里的雙重循環 for(int 排數=1; 排數<=3; 排數++){// 外層循環像摩天輪for(int 座位=1; 座位<=5; 座位++){// 內層循環像旋轉木馬cout << "??"…

Spine 動畫教程:皮膚制作

一、前言 擱了很久的抖音直播小玩法開發&#xff0c;最近又讓我想起來了。由于是初次嘗試&#xff0c;所以我將開發費用的預算降到為零。不但不買服務器采用 UnitySDK 的指令直推&#xff0c;而且游戲的資產也用 AI 生成&#xff0c;主打省時又省錢。 但是圖片有了&#xff0…

論文閱讀筆記——π0.5: a Vision-Language-Action Model with Open-World Generalization

π0.5 論文 通過異構數據協同訓練與分層推理&#xff0c;用中等規模的目標數據&#xff08;400小時&#xff09;實現了大規模泛化能力&#xff0c;為現實世界機器人學習提供了新范式。 高層推理(high-level) 根據當前觀測和任務指令預測子任務&#xff08;如“打開抽屜”&…

記錄搭建自己應用中心

記錄搭建自己應用中心 應用架構主應用-管理中心系統文件系統子應用 日志系統日志系統前端日志系統后端 用戶系統接入使用暫未完成 研發管理需求面板消息推送任務分配應用發布 應用架構 一直想做個試試&#xff0c;這是一個簡易版的&#xff0c;主要是整合下知識的&#xff0c;…

【網工第6版】第5章 網絡互聯⑦

目錄 ▲ 路由協議OSPF ◎ OSPF簡介 ◎ OSPF特點 本章重要程度&#xff1a;☆☆☆☆☆ ▲ 路由協議OSPF ◎ OSPF簡介 OSPF(Open Shortest Path First,開放式最短路徑優先協議)是目前應用最廣泛的路由協議。 OSPF是一種內部網關協議IGP&#xff0c;也是鏈路狀態路由協議&am…