【c++刷題筆記-貪心】day30:56. 合并區間 、 738.單調遞增的數字

56. 合并區間 - 力扣(LeetCode)

思路:覆蓋區間問題,先排序再判斷邊界

重點:二維數組可以使用back()函數直接更換邊界值

class Solution {
public:static bool cmp(const vector<int>& a,const vector<int>& b){return a[0]<b[0];}vector<vector<int>> merge(vector<vector<int>>& intervals) {sort(intervals.begin(),intervals.end(),cmp);vector<vector<int>>ans;int n=intervals.size();ans.push_back(intervals[0]);//第一個區間直接放for(int i=1;i<n;i++){if(ans.back()[1]>=intervals[i][0]){ans.back()[1]=max(ans.back()[1],intervals[i][1]);//更新右邊界}else{ans.push_back(intervals[i]);}}return ans;}
};

738. 單調遞增的數字 - 力扣(LeetCode)

思路:先轉換為字符串,前一個數小于當前數的時候前一個數減一,當前數替換為‘9’

重點:從后向前遍歷使用flag記錄需要替換的下標

class Solution {
public:int monotoneIncreasingDigits(int n) {if(n<=9){return n;}string s=to_string(n);int m=s.size();int flag=m;for(int i=m-1;i>0;i--){if(s[i-1]>s[i]){flag=i;s[i-1]--;}}for(int i=flag;i<m;i++){s[i]='9';}return stoi(s);}
};

總結

貪心算法,需要一定的技巧,覆蓋區間可以直接用back()函數修改右邊界。修改數字可以使用flag來記錄需要修改的數字的下標

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

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

相關文章

上網監控軟件有哪些?3款實力出眾的上網監控軟件

為什么需要上網監控軟件&#xff1f; 據說&#xff0c;99%的員工上班都會摸魚&#xff0c;1%的員工上班會竊取公司信息。 所以&#xff0c;因此&#xff0c;監控員工的上網行為是很有必要滴。 總結下來&#xff0c;上網監控軟件的作用是&#xff1a; 1.提高生產力&#xff1…

天線罩作用

天線罩是安裝在天線上的一個保護性結構&#xff0c;基本作用如下&#xff1a; 1.保護天線&#xff1a;天線罩可以保護天線免受外界環境的影響&#xff0c;如雨、雪、風、沙塵等&#xff0c;延長天線的使用壽命。 2.減少損傷&#xff1a;在天線遭受外力撞擊時&#xff0c;天線…

前端位置布局匯總

HTML中脫離文檔流的元素有&#xff1a; position: absolute - 元素相對于最近的已定位&#xff08;非 static&#xff09;祖先元素定位。 position: fixed - 元素相對于瀏覽器窗口定位。 float: left 或 float: right - 元素向左或向右浮動&#xff0c;周圍的內容會環繞它。 …

shark云原生-日志體系-filebeat高級配置(適用于生產)-更新中

文章目錄 1. filebeat.inputs 靜態日志收集器2. filebeat.autodiscover 自動發現2.1. autodiscover 和 inputs2.2. 如何配置生效2.3. Providers 提供者2.4. Providers kubernetes2.5. 配置 templates2.5.1. kubernetes 自動發現事件中的變量字段2.5.2 配置 templates 2.6. 基于…

深度學習全景進階:最新Python深度學習進階與前沿應用

查看原文>>>深度學習全景進階&#xff1a;最新Python深度學習進階與前沿應用 近年來&#xff0c;伴隨著以卷積神經網絡&#xff08;CNN&#xff09;為代表的深度學習的快速發展&#xff0c;人工智能邁入了第三次發展浪潮&#xff0c;AI技術在各個領域中的應用越來越廣…

IDEA發瘋導致maven下載回來的jar不完整zip END header not found

IDEA發瘋導致maven下載回來的jar不完整zip END header not found 具體報錯 java: 讀取D:\mavenRepository\com\alibaba\druid-spring-boot-starter\1.2.23\druid-spring-boot-starter-1.2.23.jar時出錯; zip END header not foundjava: java.lang.RuntimeException: java.io.…

2024 JuniorCryptCTF reppc 部分wp

Random cipher 文本編輯器打開附件 比較簡單。腳本 Mutated Caesar 文本編輯器打開附件 比較簡單。腳本 Pizza 附件拖入dnSpy 比較簡單。腳本 l33t Leet&#xff0c;又稱黑客語&#xff0c;是指一種發源于歐美地區的BBS、線上游戲和黑客社群所使用的文字書寫方式&#xff0c;通…

Linux:進程終止和進程替換

Linux&#xff1a;Linux&#xff1a;進程終止和進程替換 一、進程終止1.1 進程退出場景和創建退出方式 1.2 exit 和 _exit區別二、進程程序替換2.1 進程替換函數2.2 函數解釋及命名解釋函數解釋命名解釋 2.3 單進程程序替換&#xff08;無子進程&#xff09;2.3.1 帶l函數進程替…

ArduPilot開源飛控之AP_VisualOdom

ArduPilot開源飛控之AP_VisualOdom 1. 源由2. 類定義2.1 類與構造函數2.2 枚舉類型2.3 公共方法2.4 消息處理2.5 其他功能2.6 私有成員 3. 框架設計3.1 啟動代碼 AP_VisualOdom::init3.2 消息處理3.2.1 AP_VisualOdom::handle_vision_position_delta_msg3.2.2 AP_VisualOdom::h…

買的Google賬號登錄,修改輔助郵箱收不到驗證碼?可能是個簡單的錯誤

這篇文章分享一個案例&#xff0c;購買了谷歌賬號以后如何修改輔助郵箱&#xff0c;修改輔助郵箱的一些要點&#xff0c;以及常見的一個錯誤。 一、案例回放 這個朋友昨天在我的一個視頻下面留言說買了谷歌賬號以后&#xff0c;想修改輔助郵箱地址&#xff0c;但是輸入了輔助…

中英雙語介紹加拿大多倫多(Toronto)

中文版 多倫多概述 多倫多&#xff08;Toronto&#xff09;是加拿大最大的城市&#xff0c;也是北美地區重要的經濟、文化和金融中心。以下是對多倫多的詳細介紹&#xff0c;包括其經濟地位、金融中心、人口、地理位置、高等教育、移民政策、著名景點和居住的名人等方面的信息…

【Git】本地版本控制

Git 是一個分布式版本控制系統&#xff0c;用于跟蹤文件的更改&#xff0c;通常用于源代碼管理。它的設計目的是為了協同工作和版本管理&#xff0c;讓多個開發人員能夠高效地合作開發和維護代碼。 Git環境配置 在官網可以找到對應下載&#xff1a;Git - Downloads (git-scm.c…

【WebRTC實現點對點視頻通話】

介紹 WebRTC (Web Real-Time Communications) 是一個實時通訊技術&#xff0c;也是實時音視頻技術的標準和框架。簡單來說WebRTC是一個集大成的實時音視頻技術集&#xff0c;包含了各種客戶端api、音視頻編/解碼lib、流媒體傳輸協議、回聲消除、安全傳輸等。對于開發者來說可以…

avcodec_send_packet函數阻塞

用ffmpeg4.1.4開發一個播放器&#xff0c;解碼過程如下&#xff0c;在每個函數前設置標志&#xff0c;測試發現程序阻塞在avcodec_send_packet函數。 while(true){av_read_frameavcodec_send_packetavcodec_receive_frameav_packet_unref } 解釋如下&#xff1a; avcodec_se…

嵌入式Linux:如何學好嵌入式?

目錄 方法步驟 1、 基礎知識 2、 學習linux 3、 學習嵌入式linux 4、深入學習 嵌入式書籍推薦 Linux基礎 Linux內核 研發方向 硬件基礎 方法步驟 1、 基礎知識 目的:能看懂硬件工作原理,但重點在嵌入式軟件,特別是操作系統級軟件。 科目:數字電路、計算機組成原理…

Unity3D游戲 RPG

叢林探險游戲 人物進行探險游戲 擁有登錄&#xff0c;首頁&#xff0c;3D物體旋轉瀏覽的功能&#xff0c;還能進行種植樹等功能

【異常錯誤】‘NoneType‘ object has no attribute ‘GetSubstructMatches‘

出現的錯誤信息&#xff1a; AttributeError: Caught AttributeError in DataLoader worker process 0. Original Traceback (most recent call last): File "/home/mapengsen/anaconda3/envs//lib/python3.8/site-packages/torch/utils/data/_utils/worker.py", l…

【matlab 路徑規劃】基于改進遺傳粒子群算法的藥店配送路徑優化

一 背景介紹 本文分享的是一個基于訂單合并的訂單分配和路徑規劃聯合優化&#xff0c;主要背景是騎手根據客戶需求&#xff0c;從藥店取藥之后進行配送&#xff0c;配送的過程中考慮路徑的長度、客戶的服務時間窗、車輛的固定成本等要素&#xff0c;經過建模和優化得到最優的配…

C# WinForm —— 38 SplitContainer介紹

1. 簡介 將頁面拆分成兩個大小可以調整的區域&#xff0c;中間有一個拆分條&#xff0c;可以拖動拆分條來調整左右區域的大小 2. 屬性 屬性解釋(Name)控件ID&#xff0c;在代碼里引用的時候會用到BoderStyle邊框樣式&#xff1a;None、FixedSingle、Fixed3DAutoScroll當控件…

力扣 225 用隊列實現棧 記錄

題目描述 請你僅使用兩個隊列實現一個后入先出&#xff08;LIFO&#xff09;的棧&#xff0c;并支持普通棧的全部四種操作&#xff08;push、top、pop 和 empty&#xff09;。實現 MyStack 類&#xff1a; void push(int x) 將元素 x 壓入棧頂。 int pop() 移除并返回棧頂元素…