代碼隨想錄算法訓練營Day 36 | LeetCode435. 無重疊區間、LeetCode763.劃分字母區間、LeetCode56. 合并區間

LeetCode435. 無重疊區間

和上題引爆氣球的邏輯非常像,只要想到左邊界排序之后,更新右邊界為最小值,則就可以輕松寫出代碼,如果按照右邊界來排序,則就可以省去取最小值的邏輯。

代碼如下:時間復雜度O(nlogn);空間復雜度O(n)(快排)

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

LeetCode763.劃分字母區間

本題首先記錄每個字母最遠出現的下標,然后不斷遍歷字符,判斷是否到達最遠下標,如果達到,則該下標之前的字符串可以作為一個字串保留。

本題的妙處:哈希表儲存最遠下標;max值不斷維護最遠下標。

代碼如下:時間復雜度O(n);空間復雜度O(1)哈希表為固定大小。

class Solution {
public:vector<int> partitionLabels(string s) {int hash[27]={0};vector<int> result;for(int i=0;i<s.size();i++){hash[s[i]-'a'] = i;}int end = hash[s[0]-'a'];int pre_end = 0;for(int i=0;i<s.size();i++){if(i==end){result.push_back(end+1-pre_end);pre_end = end+1;if(end==s.size()-1) break;end = hash[s[i+1]-'a'];}end = max(end,hash[s[i]-'a']);}return result;}
};

LeetCode56. 合并區間?

前面的題是在求交集,那么本題就是求并集,邏輯是一樣的,如果重疊,更新右邊界,不重疊,插入result數組中,左右邊界都更新。代碼如果簡潔點可以直接利用result.back()[1]這種形式進行操作。

代碼如下:時間復雜度O(nlogn);空間復雜度O(n)(快排)。

class Solution {
public:static bool cmp(vector<int> a,vector<int> b){if(a[0]==b[0]) return a[1]<b[1];return a[0]<b[0];}vector<vector<int>> merge(vector<vector<int>>& intervals) {sort(intervals.begin(),intervals.end(),cmp);vector<vector<int>> result;vector<int> interval(2,0);interval[0] = intervals[0][0];interval[1] = intervals[0][1];for(int i=1;i<intervals.size();i++){if(intervals[i][0]>interval[1]){result.push_back(interval);interval[0] = intervals[i][0];interval[1] = intervals[i][1];}else if(intervals[i][0]<=interval[1]){interval[1] = max(intervals[i][1],interval[1]);}}result.push_back(interval);return result;}
};

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

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

相關文章

【內推】金山辦公 2024屆 春季校園招聘

有需要內推的小伙伴嗎&#xff1f; 金山辦公 各崗位均有 面向應屆生春招 QQ群&#xff1a;723529936 內推碼&#xff1a;NTASYQI

海外代購系統獨立站,商品采集API接口系列

海外代購系統獨立站是一個完整的電商平臺&#xff0c;專為代購業務設計。這樣的系統通常具備商品采集、庫存管理、訂單處理、支付集成、物流追蹤等功能。其中&#xff0c;商品采集是整個系統的基礎&#xff0c;而API接口是實現商品采集的關鍵。 請求示例&#xff0c;API接口接…

使用OpenTelemetry進行監控

工具介紹 注意&#xff1a;該部分介紹摘抄自&#xff1a;搭建高級的性能監控系統(PrometheusGrafanaNode ExporterAlertmanager) - 愛云 Prometheus、Grafana、Node Exporter 和Alertmanager是一組用于監控和可視化系統性能的開源工具。它們通常一起使用&#xff0c;形成一個強…

滲透測試站點推薦

URL編解碼站點&#xff1a; http://www.esjson.com/urlEncode.html 在線URL解碼編碼工具_蛙蛙工具 (iamwawa.cn) 加解密站點&#xff1a; CyberChef (gchq.github.io) ASCII碼轉換&#xff1a; ASCII編碼轉換&#xff0c;ASCII碼在線查詢工具 (qqxiuzi.cn) HTML實體編碼…

一些公共方法。utils存放

一、文件下載 1.接口返回文件流 const download0 (data: Blob, fileName: string, mineType: string) > {// 創建 blobconst blob new Blob([data], { type: mineType })// 創建 href 超鏈接&#xff0c;點擊進行下載window.URL window.URL || window.webkitURLconst hr…

大地測量學課堂筆記:1、緒論

慕課網址&#xff1a;https://www.icourse163.org/course/WHU-1464124180?fromsearchPage&outVendorzw_mooc_pcssjg_https://www.icourse163.org/course/WHU-1464124180?fromsearchPage&outVendorzw_mooc_pcssjg_ 1. 大地測量學的定義 大地測量學是專門研究精確測量…

【C++精簡版回顧】18.文件操作

1.文件操作頭文件 2.操作文件所用到的函數 1.文件io 1.頭文件 #include<fstream> 2.打開文件 &#xff08;1&#xff09;函數名 文件對象.open &#xff08;2&#xff09;函數參數 /* ios::out 可讀 ios::in 可…

使用華為云云函數functiongraph

之前使用騰訊云serverless&#xff0c;但是突然開始收費了。所以改用functiongraph 首先登陸華為云。 目錄 1.登錄華為云 2.在控制臺找到functiongraph并開通 3.添加依賴包&#xff1a; 3.1 制作依賴包 3.2引入依賴包 4.發送請求 4.1直接發送 4.1.1uri 4.1.2 請求頭…

基礎算法 - 快速排序、歸并排序、二分查找、高精度模板、離散化數據

文章目錄 前言Part 1&#xff1a;排序一、快速排序二、歸并排序 Part 2&#xff1a;二分一、二分 - 查找左邊界二、二分 - 查找右邊界 Part 3&#xff1a;高精度一、高精度加法二、高精度減法三、高精度乘法四、高精度除法 Part 4&#xff1a;離散化一、區間和 前言 由于本篇博…

“找不到msvcr90.dll無法啟動軟件如何解決

msvcr90.dll 是一個屬于 Microsoft Visual C 2008 Redistributable Package 的動態鏈接庫&#xff08;DLL&#xff09;文件。在Windows操作系統中&#xff0c;許多應用程序特別是那些使用Visual Studio 2008編譯器開發的程序&#xff0c;在運行時可能需要調用這個庫中的函數和資…

lua調用C++函數

第一步搭建lua的環境. win10 lua環境搭建-CSDN博客 我使用的環境是win10vs2015lua54 先來個最簡單的lua調用C函數, 無參數無返回值的 第一步:定義C函數. int CTest(lua_State* L) // 返回值是固定的int類型,返回0表示沒有返回參數,返回1表示有一個返回參數 {std::cout &l…

K8S高級篇:138頁經典實戰案例,圖文并茂代碼齊全,僅限3天分享

相信很多朋友都聽過云原生和容器技術&#xff0c;當然也少不了K8S的大名&#xff0c;在“容器技術革命”中&#xff0c;K8S儼然已經成為容器技術的事實標準&#xff0c;各個知名互聯網企業前仆后繼地擁抱云原生&#xff0c;爭先恐后地把容器和K8S作為戰略重心之一。 容器技術發…

HTTP頭部信息解釋分析(詳細整理)

這篇文章為大家介紹了HTTP頭部信息&#xff0c;中英文對比分析&#xff0c;還是比較全面的&#xff0c;若大家在使用過程中遇到不了解的&#xff0c;可以適當參考下 HTTP 頭部解釋 1. Accept&#xff1a;告訴WEB服務器自己接受什么介質類型&#xff0c;*/* 表示任何類型&#…

WordPress上傳圖片錯誤:不是合法的JSON響應

最近在進行WordPress遷移至新服務器的過程中&#xff0c;遭遇到一個棘手的問題&#xff0c;即在編輯文章并上傳圖片時&#xff0c;不斷遭遇“此響應不是合法的JSON響應”的錯誤。經過多次驗證和搜索&#xff0c;最終確定問題的根本原因并不在于禁用 Gutenberg 編輯器或安裝經典…

CSS變量和@property

CSS變量 var() CSS 變量是由CSS作者定義的實體&#xff0c;其中包含要在整個文檔中重復使用的特定值。使用自定義屬性來設置變量名&#xff0c;并使用特定的 var() 來訪問。&#xff08;比如 color: var(--main-color);&#xff09;。 基本用法 CSS變量定義的作用域只在定義該…

【Kotlin】函數

1 常規函數 1.1 無參函數 fun main() {myFun() }fun myFun() {println("myFun") // 打印: myFun } 1.2 有參函數 1&#xff09;常規調用 fun main() {myFun("myFun") // 打印: myFun }fun myFun(str: String) {println(str) } 2&#xff09;形參指定默…

根據條件查詢下載Excel表單(Java+Vue 及 Vue 兩種方式)

目錄 前言1. 基本知識2. 純前端導入導出&#xff08;Vue&#xff09;3. 前后端&#xff08;Vue Java&#xff09; 前言 如果想要下載好看的Excel推薦閱讀&#xff1a; 詳細講解Java使用EasyExcel函數來操作Excel表&#xff08;附實戰&#xff09;詳細講解Java使用HSSFWorkbo…

23.基于springboot + vue實現的前后端分離-在線旅游網站系統(項目 + 論文PPT)

項目介紹 本旅游網站系統采用的數據庫是MYSQL &#xff0c;使用 JSP 技術開發&#xff0c;在設計過程中&#xff0c;充分保證了系統代碼的良好可讀性、實用性、易擴展性、通用性、便于后期維護、操作方便以及頁面簡潔等特點。 技術選型 后端: SpringBoot Mybatis 數據庫 : MyS…

RK android11 user打開adb調試功能

目錄build/make/core diff --git a/core/main.mk b/core/main.mk --- a/core/main.mk b/core/main.mk -280,7 280,7 ifneq (,$(user_variant)) ADDITIONAL_DEFAULT_PROPERTIES security.perf_harden1 ifeq ($(user_variant),user) - ADDITIONAL_DEFAULT_PROPER…

機器學習:原理、應用與未來展望

第一章 是什么 機器學習&#xff08;Machine Learning&#xff09;是一門跨學科的學科&#xff0c;它使用計算機模擬或實現人類學習行為&#xff0c;通過不斷地獲取新的知識和技能&#xff0c;重新組織已有的知識結構&#xff0c;從而提高自身的性能。機器學習涉及多個學科&am…