代碼隨想錄訓練營第三十天 452用最少數量的箭引爆氣球 435無重疊區間 763劃分字母區間

第一題:

原題鏈接:452. 用最少數量的箭引爆氣球 - 力扣(LeetCode)

思路:先根據每個元素的第一個值進行排序,然后從第一個元素開始遍歷,這里要注意我們初始化結果值的時候直接初始化為1,因為無論如何都是需要一把箭引爆氣球。開始遍歷的時候當前元素的左邊界如果大于前一個元素的右邊界的話說明此時需要加一把箭才能引爆氣球,如果不是則跟新當前元素的右邊界為當前右邊界和前一個元素的右邊界的最小值。

代碼如下:

class Solution {
public:static bool cmp(vector<int> a, vector<int> b){return a[0] < b[0];}int findMinArrowShots(vector<vector<int>>& points) {if(points.size() == 0) return 0;int res = 1;sort(points.begin(), points.end(), cmp);for(int i = 1; i < points.size(); i++){if(points[i][0] > points[i - 1][1]){res++;}else{points[i][1] = min(points[i - 1][1], points[i][1]);}}return res;}
};

第二題:

原題鏈接:435. 無重疊區間 - 力扣(LeetCode)

思路:

首先也是要排序,如果當前元素的左邊界小于前一個元素的右邊界,說明重疊了需要去掉一個,然后將右邊界跟新為當前元素右邊界和前一個元素右邊界的較小值。

代碼如下:

class Solution {
public:static bool cmp(vector<int> a, vector<int> b){return a[0] < b[0];}int eraseOverlapIntervals(vector<vector<int>>& intervals) {if(intervals.size() == 0) return 0;int res = 0;sort(intervals.begin(), intervals.end(), cmp);for(int i = 1; i < intervals.size(); i++){if(intervals[i][0] < intervals[i - 1][1]){res++;intervals[i][1] = min(intervals[i - 1][1], intervals[i][1]);}}return res;}
};

第三題:

原題鏈接:763. 劃分字母區間 - 力扣(LeetCode)

思路:

首先用一個unordered_map數據結構來存放每個字母的最遠下標位置。

首先先遍歷整個數組,map存放字母對應的最遠下標值。

然后再定義一個左邊界和右邊界和結果數組。

再次遍歷。將右邊界right更新了當前元素的最遠值。當遍歷到i的值等于right的時候說明劃分到一個片段了,將right - left + 1的值填到結果數組中

代碼如下:

class Solution {
public:vector<int> partitionLabels(string s) {unordered_map<char, int> map;for(int i = 0; i < s.size(); i++){map[s[i]] = i;}vector<int> res;int left = 0, right = 0;for(int i = 0; i < s.size(); i++){right = max(right, map[s[i]]);if(right == i){res.push_back(right - left + 1);left = right + 1;}}return res;}
};

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

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

相關文章

強化基石,引領未來:完善配套設施與提升服務水平

完善配套設施與提升服務水平對于產業園運營具有重要意義。它們不僅能夠提升園區的硬件環境和整體形象&#xff0c;增強園區的吸引力和競爭力&#xff1b;還能夠優化營商環境&#xff0c;降低企業運營成本&#xff0c;提高運營效率&#xff1b;同時推動園區創新&#xff0c;形成…

基于Java技術的網吧管理系統

你好呀&#xff0c;我是計算機學姐碼農小野&#xff01;如果有相關需求&#xff0c;可以私信聯系我。 開發語言&#xff1a;Java 數據庫&#xff1a;MySQL 技術&#xff1a;Java技術&#xff0c;B/S結構 工具&#xff1a;MyEclipse&#xff0c;MySQL 系統展示 首頁 個人中…

PDF轉Markdown的開源工具解析

Marker&#xff1a;PDF轉Markdown的開源工具解析 Marker是一個由VikParuchuri在GitHub上開發的開源項目&#xff0c;其核心功能是將PDF文件轉換為Markdown格式。以下是對Marker項目的詳細解析&#xff1a; 項目概述&#xff1a; 項目鏈接&#xff1a;https://github.com/VikP…

【技術追蹤】DiffuMatting:使用摳圖級別注釋合成任意對象(ECCV-2024)

萬物生&#xff1a;Diffusion與綠幕摳圖&#xff0c;影視領域的福音~ 論文&#xff1a;DiffuMatting: Synthesizing Arbitrary Objects with Matting-level Annotation 代碼&#xff1a;https://github.com/HUuxiaobin/DiffuMatting &#xff08;即將開源&#xff09; 0、摘要 …

2024年06月CCF-GESP編程能力等級認證C++編程一級真題解析

本文收錄于專欄《C等級認證CCF-GESP真題解析》&#xff0c;專欄總目錄&#xff1a;點這里。訂閱后可閱讀專欄內所有文章。 一、單選題&#xff08;每題 2 分&#xff0c;共 30 分&#xff09; 第 1 題 在C中&#xff0c;下列不可做變量的是( )。 A. five-Star B. five_star C…

(補充):java各種進制和文本、圖像、音頻在計算機中的存儲方式

文章目錄 前言一、進制1 逢幾進一2 常見進制在java中的表示3 進制中的轉換(1)任意進制轉十進制(2)十進制轉其他進制二、計算機中的存儲1 計算機的存儲規則(文本數據)(1)ASCII碼表(2)編碼規則的發展演化2 計算機的存儲規則(圖片數據)(1)分辨率、像素(2)黑白圖與灰度…

Knife4j的介紹與使用

目錄 一、簡單介紹1.1 簡介1.2 主要特點和功能&#xff1a; 二、使用步驟&#xff1a;2.1 添加依賴&#xff1a;2.2 yml數據源配置2.3 創建knife4j配置類2.4 注解的作用 最后 一、簡單介紹 1.1 簡介 Knife4j 是一款基于Swagger的開源文檔管理工具&#xff0c;主要用于生成和管…

Java客戶端調用SOAP方式的WebService服務實現方式分析

簡介 在多系統交互中&#xff0c;有時候需要以Java作為客戶端來調用SOAP方式的WebService服務&#xff0c;本文通過分析不同的調用方式&#xff0c;以Demo的形式&#xff0c;幫助讀者在生產實踐中選擇合適的調用方式。 本文JDK環境為JDK17。 結論 推薦使用Axis2或者Jaxws&#…

拆分pdf文件最簡單的方法,pdf怎么拆成一頁一張

在數字化的時代&#xff0c;pdf文件已經成為我們日常辦公、學習不可或缺的文檔格式。然而&#xff0c;有時候我們可能需要對一個大的pdf文件進行拆分&#xff0c;以方便管理和分享。那么&#xff0c;如何將一個pdf文件拆分成多個pdf呢&#xff1f;本文將為你推薦一種好用的拆分…

PLSQL Day4

--使用顯式游標更新行&#xff0c;對所有salesman增加500獎金&#xff1a; declare cursor s_cursor is select * from emp where job SALESMAN for update; begin for e_s in s_cursor loop update emp set comm nvl(comm,0)500 where current of s_cur…

AFT:Attention Free Transformer論文筆記

原文鏈接 2105.14103 (arxiv.org) 原文翻譯 Abstract 我們介紹了 Attention Free Transformer (AFT)&#xff0c;這是 Transformer [1] 的有效變體&#xff0c;它消除了點積自注意力的需要。在 AFT 層&#xff0c;鍵key和值value首先與一組學習的位置偏差position biases相結…

ubuntu22安裝Docker并配置

安裝Docker sudo apt install docker.io使用腳本自動安裝docker&#xff1a; curl -fsSL get.docker.com -o get-docker.sh sudo sh get-docker.sh --mirror Aliyun配置國內鏡像 /etc/docker/daemon.json 推薦配置&#xff1a; {"registry-mirrors": ["htt…

Lab1 論文 MapReduce

目錄 &#x1f339;前言 &#x1f985;2 Programming Model &#x1f33c;2.1 Example &#x1f33c;2.2 Types &#x1f33c;2.3 More Examples &#x1f985;3 Implementation(實現) &#x1f33c;3.1 ~ 3.3 &#x1f33c;3.4 ~ 3.6 &#x1f985;4 Refinemen…

代理IP有什么用途

代理IP主要有以下應用場景&#xff1a; 1、隱藏真實IP地址&#xff1a;通過使用代理IP&#xff0c;可以隱藏真實的網絡請求來源&#xff0c;保護用戶隱私。 2、繞過網絡限制&#xff1a;一些地區或網絡環境可能存在訪問限制&#xff0c;通過使用代理IP可以繞過這些限制&#xf…

Anaconda+Pycharm 項目運行保姆級教程(附帶視頻)

最近很多小白在問如何用anacondapycharm運行一個深度學習項目&#xff0c;進行代碼復現呢&#xff1f;于是寫下這篇文章希望能淺淺起到一個指導作用。 附視頻講解地址&#xff1a;AnacondaPycharm項目運行實例_嗶哩嗶哩_bilibili 一、項目運行前的準備&#xff08;軟件安裝&…

BN的 作用

1、背景&#xff1a; 卷積神經網絡的出現&#xff0c;網絡參數量大大減低&#xff0c;使得幾十層的深層網絡成為可能。然而&#xff0c;在殘差網絡出現之前&#xff0c;網絡的加深使得網絡訓練變得非常不穩定&#xff0c;甚至出現網絡長時間不更新或者不收斂的情形&#xff0c;…

ER模型理論和三范式

ER模型理論和三范式 各種關系多對一一對一一對多多對多 三范式理論函數依賴完全函數依賴部分函數依賴傳遞&#xff08;間接&#xff09;函數依賴 第一范式&#xff1a;屬性&#xff08;表字段&#xff09;不可切割第二范式&#xff1a;不能存在 部分函數依賴(都存在完全函數依賴…

2款一鍵word生成ppt的AI工具,讓職場辦公更為簡單!

在當下主打異步溝通的職場辦公環境中&#xff0c;我們與很多人的溝通&#xff0c;都是通過書面材料來達成的&#xff0c;這就讓 Word 或文檔編輯軟件變得更為重要&#xff0c;與此同時&#xff0c;有時為了凸現書面材料中的重點&#xff0c;我們還要將 word 文檔轉換為 ppt 來進…

2024年06月CCF-GESP編程能力等級認證Python編程五級真題解析

本文收錄于專欄《Python等級認證CCF-GESP真題解析》&#xff0c;專欄總目錄&#xff1a;點這里&#xff0c;訂閱后可閱讀專欄內所有文章。 一、單選題&#xff08;每題 2 分&#xff0c;共 30 分&#xff09; 第 1 題 在Python中&#xff0c;print((c for c in “GESP”))的輸…

MiniGPT-Med 通用醫學視覺大模型:生成醫學報告 + 視覺問答 + 醫學疾病識別

MiniGPT-Med 通用醫學視覺大模型&#xff1a;生成醫學報告 視覺問答 醫學疾病識別 提出背景解法拆解 論文&#xff1a;https://arxiv.org/pdf/2407.04106 代碼&#xff1a;https://github.com/Vision-CAIR/MiniGPT-Med 提出背景 近年來&#xff0c;人工智能&#xff08;AI…