枚舉中間位置基礎篇

參考資料來源靈神在力扣所發的題單,僅供分享學習筆記和記錄,無商業用途。

核心思路:

一:直接直接用數據結構記錄需要的數據,在枚舉右,維護左的循環中,刪除當前位置的元素即可達成一樣效果

二:(采用后綴表or其他:從后往前維護最有可能滿足條件的數據結構 ),在枚舉右,維護左。

應用場景:問題有三個下標,需要滿足?0≤i<j<k<n。枚舉?j,那么?i?和?k?自動被?j?隔開,互相獨立,后續計算中無需關心?i?和?k?的位置關系。

模板題:2909. 元素和最小的山形三元組 II

class Solution {
public:int minimumSum(vector<int>& nums) {vector<int> ans(nums.size());ans[nums.size()-1]=nums.back();//后綴表:維護最有可能滿足條件的數據for(int i=nums.size()-2;i>=2;i--) ans[i]=min(ans[i+1],nums[i]);int buff=nums[0],ret=INT_MAX;//枚舉右,維護左for(int i=1;i<nums.size()-1;i++){//根據維護的左區間和后區間,判斷當前元素是否滿足條件if(buff<nums[i] && nums[i]>ans[i+1]) ret=min(ret,buff+nums[i]+ans[i+1]);buff=min(buff,nums[i]);}return ret==INT_MAX?-1:ret;}
};

力扣題單練習(靈神題單中摘取題目)

3583. 統計特殊三元組

class Solution {
public:int specialTriplets(vector<int>& nums) {const int MOD=1E9+7;unordered_map<int,int> map;vector<int> ans(nums.size(),0);int ret=0;//后綴表:從后往前維護當前元素右側有多少滿足條件的值for(int i=nums.size()-1;i>=1;i--){ans[i]=map[nums[i]*2];map[nums[i]]++;}map.clear();map[nums[0]]++;//枚舉右,維護左。for(int i=1;i<nums.size()-1;i++){//當前元素前面滿足條件的值的數量*后綴表[i]=當前元素可以構成的特殊三元組數量ret=(ret+(long long)ans[i]*map[nums[i]*2])%MOD;map[nums[i]]++;}return ret;}
};

1930. 長度為 3 的不同回文子序列

核心思路:用位運算將字符轉化成二進制記錄以當前元素作為中間值的各種不同回文序列

class Solution {
public://統計以當前元素為中間值可組成的不同回文序列的數量int check(int x){int ans=0;for(int i=0;i<26;i++) if((x>>i) & 1) ans++;return ans;}用位運算將字符轉化成二進制記錄以當前元素作為中間值的各種不同回文序列int countPalindromicSubsequence(string s) {//題意:給定一個字符串,選取從中選取三個元素要求組成回文字符串。記錄不同回文字符串的總數量vector<int> last(26,0),head(26,0),has(26,0);//數組記錄后續元素for(int i=1;i<s.size();i++) last[s[i]-'a']++;for(int i=1;i<s.size()-1;i++){last[s[i]-'a']--;  //在后序元素數組中剔除當前元素head[s[i-1]-'a']++; //前序元素數組中增加當前位置的前一位的元素for(int j=0;j<26;j++){if(head[j] && last[j]){  //前后序都有的元素可組成回文序列has[s[i]-'a']|=1<<j;  //記錄以當前元素作為中間值的各種不同回文序列}}}int ret=0;for(int i=0;i<26;i++) ret+=check(has[i]);return ret;}
};

3128. 直角三角形

核心思路:枚舉直角三角形的拐角位置

class Solution {
public:long long numberOfRightTriangles(vector<vector<int>>& grid) {vector<int> row(grid.size()),col(grid[0].size());//記錄每行每列有多少個1for(int i=0;i<grid.size();i++){for(int j=0;j<grid[i].size();j++){if(grid[i][j]==1){row[i]++;col[j]++;}}}long long ret=0;for(int i=0;i<grid.size();i++){for(int j=0;j<grid[0].size();j++){//枚舉直角三角形的拐角位置,當前行-1*當前列-1=當前拐角可構成的直角三角形if(grid[i][j]==1) ret+=(row[i]-1)*(col[j]-1);}}return ret;}
};

2874. 有序三元組中的最大值 II

class Solution {
public:long long maximumTripletValue(vector<int>& nums) {int n=nums.size();vector<int> ans(n+1,INT_MIN);//后綴表:從后向前維護當前最大值for(int i=n-1;i>=2;i--) ans[i]=max(ans[i+1],nums[i]);int buff=nums[0];long long ret=0;//枚舉右,維護左(最大值)for(int i=1;i<n-1;i++){ret=max(ret,(long long)(buff-nums[i])*ans[i+1]);buff=max(buff,nums[i]);}return ret;}
};

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

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

相關文章

企業選擇將服務器放在IDC機房托管的優勢

在服務器作為數據存儲和傳輸的核心設備的社會環境中&#xff0c;服務器的穩定性和安全性會直接影響到企業業務的連續性和用戶的滿意程度&#xff0c;隨著云計算技術和大數據的興起&#xff0c;企業對于服務器的需求也在日益增加&#xff0c;而如何高效、安全的管理服務器則是各…

自動化UI測試工具TestComplete的AI雙引擎:即時數據集 + 自愈測試

隨著敏捷開發和持續交付模式的普及&#xff0c;傳統的軟件測試方法正面臨著前所未有的挑戰。測試團隊在追求快速迭代的同時&#xff0c;往往陷入測試數據準備和測試維護的泥潭&#xff0c;嚴重制約了交付效率和質量保障能力。 TestComplete作為業界領先的自動化測試工具&#…

用KNN實現手寫數字識別:基于 OpenCV 和 scikit-learn 的實戰教學 (超級超級超級簡單)

用KNN實現手寫數字識別&#xff1a;基于 OpenCV 和 scikit-learn 的實戰教學在這篇文章中&#xff0c;我們將使用 KNN&#xff08;K-Nearest Neighbors&#xff09;算法對手寫數字進行分類識別。我們會用 OpenCV 讀取圖像并預處理數據&#xff0c;用 scikit-learn 構建并訓練模…

數據結構自學Day15 -- 非比較排序--計數排序

一、計數排序&#xff08;Counting Sort&#xff09;計數排序是一種非比較型的排序算法&#xff0c;它的核心思想是&#xff1a;利用“元素的值”來確定它在結果數組中的位置&#xff0c;通過“統計每個數出現的次數”來完成排序。二、如何實現計數排序&#xff08;核心步驟&am…

k8s的權限

來自博客&#xff1a;25-k8s集群中-RBAC用戶角色資源權限_權限 資源 角色-CSDN博客 一.RBAC概述&#xff08;基于角色的訪問控制&#xff09; 1.圖解 用戶&#xff1a; 1.user 2.serviceAccount 3.Group 用戶角色 1.Role:局部資源角色 2.clusterRole:全局資源角色額 角色綁…

C++ - 仿 RabbitMQ 實現消息隊列--服務端核心模塊實現(三)

目錄 隊列數據管理 代碼實現 測試代碼 綁定信息(交換機-隊列)管理 代碼實現 測試代碼 隊列數據管理 當前隊列數據的管理&#xff0c;本質上是隊列描述信息的管理&#xff0c;描述當前服務器上有哪些隊列。 定義隊列描述數據類 隊列名稱是否持久化標志是否獨占標志是否自…

51c自動駕駛~合集9

自己的原文哦~ https://blog.51cto.com/whaosoft/11627386 #端到端1 說起端到端&#xff0c;每個從業者可能都覺得會是下一代自動駕駛量產方案繞不開的點&#xff01;特斯拉率先吹響了方案更新的號角&#xff0c;無論是完全端到端&#xff0c;還是專注于planner的模…

時間長了忘記jupyter的環境是哪個了

有這些但是忘記是哪個了jupyter kernelspec list查看內核路徑&#xff0c;這個內核是用來告訴jupyter 去哪找內核配置的到這個路徑下打開json文件查看使用的python環境從而確定是哪個conda環境為jupyter使用的python環境jupyter的工作原理&#xff1a;在創建conda環境后會安裝j…

PYTHON從入門到實踐-15數據可視化

數據可視化是數據分析中不可或缺的一環&#xff0c;它能夠將抽象的數據轉化為直觀的圖形&#xff0c;幫助我們更好地理解數據特征和發現潛在規律。本文將介紹如何使用Python中的Matplotlib和Plotly庫進行數據可視化&#xff0c;并通過擲骰子的概率模擬案例展示可視化的實際應用…

Spring IOC 容器 **默認注冊 Bean** 的 8 條規則

Spring IOC 容器 默認注冊 Bean 的 8 條規則 &#xff08;Spring Framework 6.x 源碼級總結&#xff09;閱讀提示&#xff1a;把下面 8 條規則背下來&#xff0c;再讀 Spring 源碼時&#xff0c;你會在任何一行代碼里立刻知道「這個 BeanDefinition 是從哪兒來的」。1?? 環境…

29.【.NET8 實戰--孢子記賬--從單體到微服務--轉向微服務】--單體轉微服務--用戶配置服務

用戶配置服務是孢子記賬中最簡單的部分。簡單說&#xff0c;用戶配置服務就是用戶自定義的配置項存儲服務&#xff0c;用于我們的APP根據用戶的配置實現指定的功能。它提供了一個簡單的接口&#xff0c;允許用戶存儲和檢索他們的配置數據。就目前來說&#xff0c;用戶配置只有一…

Python實現PDF按頁分割:靈活拆分文檔的技術指南

Python實現PDF按頁分割&#xff1a;靈活拆分文檔的技術指南 PDF文件處理是日常工作中的常見需求&#xff0c;特別是當我們需要將大型PDF文檔拆分為多個部分時。本文將介紹如何使用Python創建一個靈活的PDF分割工具&#xff0c;能夠根據用戶指定的頁數范圍任意分割文檔。 需求分…

「iOS」——GCD其他方法詳解

GCD學習GCD其他方法dispatch_semaphore &#xff08;信號量&#xff09;**什么是信號量**dispatch_semaphore主要作用dispatch_semaphore主要作用異步轉同步設置一個最大開辟的線程數加鎖機制dispatch_time_t 兩種形式GCD一次性代碼(只執行一次)dispatch_barrier_async/sync柵欄…

【圖像處理基石】如何實現一個車輛檢測算法?

基于AI的車牌檢測和識別算法 問題描述、應用場景與難點 問題描述 車牌檢測和識別是計算機視覺領域的一個特定任務&#xff0c;主要包含兩個核心步驟&#xff1a; 車牌檢測&#xff1a;從圖像中準確定位車牌的位置和區域車牌識別&#xff1a;對檢測到的車牌區域進行字符識別&…

計算機學報 2025年 區塊鏈論文 錄用匯總 附pdf下載

計算機學報 Year&#xff1a;2025 2024請看 1 Title: 基于區塊鏈的動態多云多副本數據完整性審計方法研究 Authors: Key words: 區塊鏈&#xff1b;云存儲&#xff1b;多云多副本存儲&#xff1b;數據完整性審計 Abstract: 隨著云計算技術的快速發展和云存儲服務的日益…

計算機網絡-UDP協議

UDP&#xff08;用戶數據報協議&#xff09;是傳輸層的一種無連接、不可靠、輕量級的協議&#xff0c;適用于對實時性要求高、能容忍少量數據丟失的場景&#xff08;如視頻流、DNS查詢等&#xff09;。以下是UDP的詳細解析&#xff1a;1. UDP的核心特點特性說明無連接通信前無需…

子域名收集和c段查詢

子域名收集方法一、sitesite&#xff1a; 要查詢的域名可以查到相關網站二、oneforall &#xff08;子域名查找工具&#xff09;下載后解壓的文件夾在當前文件夾打開終端然后運行命令 python oneforall.py --target xxxxxxxx&#xff08;這里放你要查的網址&#xff09; run最…

計網-TCP擁塞控制

TCP的擁塞控制&#xff08;Congestion Control&#xff09;是核心機制之一&#xff0c;用于動態調整發送方的數據傳輸速率&#xff0c;避免網絡因過載而出現性能急劇下降&#xff08;如丟包、延遲激增&#xff09;。其核心思想是探測網絡可用帶寬&#xff0c;并在擁塞發生時主動…

依賴倒置原則 Dependency Inversion Principle - DIP

基本知識 1.依賴倒置原則&#xff08;DIP&#xff09;是面向對象設計&#xff08;OOD&#xff09;中的五個基本原則之一&#xff0c;通常被稱為 SOLID 原則中的 D 2.核心思想&#xff1a; 高層模塊不應該依賴低層模塊&#xff0c;兩者都應該依賴抽象。 (High-level modules sho…

原生input添加刪除圖標類似vue里面移入顯示刪除[jquery]

<input type"text" id"servicer-search" class"form-control" autocomplete"off" />上面是剛開始的input <div class"servicer-search-box"><input type"text" id"servicer-search" cla…