代碼隨想錄訓練營第三十一天|LeetCode56.合并區間、LeetCode738.單調遞增的數字

56.合并區間

思路:先讓二維數組進行排序;

遍歷數組,定義一個min表示重合區間的左邊界,max表示重合區間的右邊界;

如果當前區間左邊大于max,就證明重合區間斷了,就要對它進行加入ArrayList;然后更新min和max就是當前數組的左邊界和右邊界。

反正,就證明是重合區間。更新max。

這里中了一個小坑:讓當前區間的左邊和上一個區間的右邊作比較,來判斷是不是重合區間。顯然[1,6],[2,4],這種[2,4]被包含在重合區間里面,就只能用重合區間的右邊界。

class Solution {public int[][] merge(int[][] intervals) {Arrays.sort(intervals,(a,b)->a[0]-b[0]);List<int[]> list=new ArrayList<>();int min=intervals[0][0];int max=intervals[0][1];for(int i=1; i<intervals.length; i++){if(intervals[i][0]>max){// list.add(new int[]{min,intervals[i-1][1]});list.add(new int[]{min,max});min=intervals[i][0];max=intervals[i][1];}else{max=Math.max(intervals[i][1],max);}}list.add(new int[]{min,max});return list.toArray(new int[list.size()][]);}
}

738.單調遞增的數字

暴力法會超時!

可以借助字符串。

因為找一個數字的最大遞增數字,就是讓迭代讓前一個數字-1并且后一個數字變成9,就可以實現。

思路:現將數字轉變為字符串,然后從后往前遍歷,如果遇到前一個數字比后一個數字大,就讓當前數字-1,然后記錄當前數字的位置start。

遍歷完數字后,就可以再從start位置開始將后面的數字都變成9。

class Solution {public int monotoneIncreasingDigits(int n) {String s=String.valueOf(n);char[] chars=s.toCharArray();int start=s.length();for(int i=chars.length-2; i>=0; i--){if(chars[i]>chars[i+1]){chars[i]--;start=i+1;}}for(int i=start; i<chars.length; i++){chars[i]='9';}return Integer.parseInt(String.valueOf(chars));}
}

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

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

相關文章

【Unity項目經驗分享】實現左右分屏裸眼3D程序

1、實現原理左右分屏原理&#xff0c;左右屏內容左右方向存在些許偏差。通過左右相機&#xff0c;然后左側相機向左側偏移一點3cm&#xff0c;右側相機向右側屏偏移一定3cm&#xff0c;然后將左右相機渲染內容通過RenderTexture渲染到Canvas上面的左右RawImage上面。2、實現具體…

設計軟件啟動失敗?“找不到vcruntime140.dll,無法繼續執行代碼” 場景化解決方案來了

打游戲時&#xff0c;剛加載到登錄界面就因 “找不到 vcruntime140.dll, 無法繼續執行代碼” 閃退&#xff1b;寫代碼時&#xff0c;編譯工具突然報錯中斷工作&#xff1b;做設計時&#xff0c;PS、AE 啟動失敗彈出相同提示 —— 不同場景下的 vcruntime140.dll 錯誤&#xff0…

基于Echarts+HTML5可視化數據大屏展示-茶葉種植大數據溯源平臺

效果展示&#xff1a;代碼結構&#xff1a;主要代碼實現 index.html布局 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta n…

PLOS One圖片處理要求及處理辦法

PLOS One圖片處理&#xff1a; 要求&#xff1a;Please remove your figures from within your manuscript file, leaving only the individual TIFF/EPS image files. These will be automatically included in the reviewer’s PDF. 請從稿件文件中移除所有圖表&#xff0c;…

AutoLayout與Masonry:簡化iOS布局

Auto Layout 與 Masonry蘋果提供的自動布局&#xff08;Auto Layout&#xff09;能夠對視圖進行靈活有效的布局。但是&#xff0c;使用原生的自動布局相關的語法創建約束的過程是非常冗長的&#xff0c;可讀性也比較差。Masonry 的目標其實就是 為了解決原生自動布局語法冗長的…

從設計到落地:校園圖書館系統的面向對象實現全流程

很多小白學面向對象時總困惑&#xff1a;“類圖、用例圖我會畫&#xff0c;但怎么把這些設計變成能跑的代碼&#xff1f;” 這篇文章就用 “校園圖書館管理系統” 當例子&#xff0c;從需求分析→設計方案→代碼實現→測試驗證&#xff0c;帶你走通 “設計→實現” 的完整鏈路&…

[鴻蒙心跡]帶新人學鴻蒙的悲歡離合

2023年底&#xff0c;我和陸神&#xff0c;威哥&#xff0c;老羅一起去深圳參加了鴻蒙師資培訓正式開啟了鴻蒙之旅&#xff0c;當時和陸神拍的合照但是我把陸神打碼了 學完以后就考取了鴻蒙的高級認證 看到沒有時間是2023年11月 馬上都要到期了。 想一想時間過得真快&#xff…

MindShow AI:AI思維導圖生成工具高效解決思路混亂難題,快速搭建學習與工作大綱

你有沒有過這種時候&#xff1f;想整理一份學習大綱或者項目方案&#xff0c;腦子裡一堆想法卻散得像亂麻 —— 比如要做個 “數據分析入門規劃”&#xff0c;明明知道要學 Excel、SQL、Python&#xff0c;可怎么分階段、每個階段學哪些重點&#xff0c;對著空白文檔半天列不出…

快速搭建一個Vue+TS+Vite項目

1、在一個文件夾下通過cmd打開&#xff0c;輸入命令npm create vitelatest命名要為英文2.選擇項目框架通過上下鍵位選擇Vue框架&#xff1a;選好按回車鍵3.選擇開發語言選擇TypeScript語言&#xff0c;方便后續開發&#xff1a;創建好的項目目錄為&#xff1a;4.安裝Vite依賴接…

深度學習:ResNet 殘差神經網絡詳解

一、ResNet 殘差神經網絡的起源與核心地位ResNet&#xff08;Residual Neural Network&#xff0c;殘差神經網絡&#xff09;是 2015 年由微軟亞洲研究院的何凱明、張祥雨等研究者提出的深度神經網絡架構。在當年的 ImageNet 大規模視覺識別挑戰賽&#xff08;ILSVRC&#xff0…

Python面試題及詳細答案150道(116-125) -- 性能優化與調試篇

《前后端面試題》專欄集合了前后端各個知識模塊的面試題,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs,nodejs,mangoDB,SQL,Linux… 。 前后端面試題-專欄總目錄 文章目錄 一、本文面試題目錄 116. 如何查找Python程序的…

C++11 智能指針的使?及其原理

目錄 1. 智能指針的使?場景分析 2. RAII和智能指針的設計思路 3. C標準庫智能指針的使? 4. 智能指針的原理 5. shared_ptr和weak_ptr 5.1 shared_ptr循環引?問題 5.2 weak_ptr 6. shared_ptr的線程安全問題 7. C11和boost中智能指針的關系 8. 內存泄漏 8.1 什么是…

【Linux】Linux進程狀態和僵尸進程:一篇看懂“進程在忙啥”

前言&#xff1a;歡迎各位光臨本博客&#xff0c;這里小編帶你直接手撕Make/Makefile (自動化構建)&#xff0c;文章并不復雜&#xff0c;愿諸君耐其心性&#xff0c;忘卻雜塵&#xff0c;道有所長&#xff01;&#xff01;&#xff01;&#xff01; **&#x1f525;個人主頁&a…

開源視頻剪輯工具推薦

開源視頻剪輯和處理工具近年來發展非常迅速&#xff0c;許多工具的功能已經足以媲美甚至超越一些商業軟件。以下是一些頂級的開源視頻編輯和處理工具&#xff0c;涵蓋了從簡單易用到專業級別的不同需求。 一、 主要視頻編輯軟件&#xff08;非線性編輯&#xff0c;NLE&#xf…

第十四屆藍橋杯青少組C++國賽[2023.5.28]第二部分編程題(4、 數獨填數)

參考程序&#xff1a;#include <bits/stdc.h> using namespace std;char board[9][9];// 檢查在 (r,c) 填 num 是否有效 bool isValid(int r, int c, char num) {for (int i 0; i < 9; i) {if (board[r][i] num) return false; // 同行if (board[i][c] num) r…

C語言中奇技淫巧08-使用alloca/__builtin_alloca從棧上分配空間

alloca是什么? alloca 是一個非標準但廣泛支持的 C 語言函數&#xff0c;用于在當前函數的棧&#xff08;stack&#xff09;上動態分配內存。 與 malloc 的區別&#xff1a; malloc 在堆&#xff08;heap&#xff09; 上分配內存&#xff0c;需要手動調用 free 釋放。alloca 在…

【Markdown轉Word完整教程】從原理到實現

Markdown轉Word完整教程&#xff1a;從原理到實現 前言 在技術文檔編寫和學術論文創作中&#xff0c;Markdown因其簡潔的語法和良好的可讀性而廣受歡迎。然而&#xff0c;在實際工作中&#xff0c;我們經常需要將Markdown文檔轉換為Word格式&#xff0c;以便與同事協作、提交正…

IBM穿孔卡片:現代計算技術的奠基之作

本文由「大千AI助手」原創發布&#xff0c;專注用真話講AI&#xff0c;回歸技術本質。拒絕神話或妖魔化。搜索「大千AI助手」關注我&#xff0c;一起撕掉過度包裝&#xff0c;學習真實的AI技術&#xff01; 1 打孔卡概述 穿孔卡片&#xff08;Punch Card&#xff09;又稱打孔卡…

亞馬遜旺季來臨如何用woot沖刺

在亞馬遜旺季來臨之際&#xff0c;使用Woot沖刺需結合新品推廣、老品激活、庫存清理等不同場景&#xff0c;通過精準選品、活動設置、廣告配合及數據監控實現銷量與排名的雙重提升。以下是具體操作指南&#xff1a;一、精準選品&#xff1a;匹配提報條件新品期選品標準&#xf…

AlexNet:計算機視覺的革命性之作

AlexNet: Revolutionizing Deep Learning for Computer Vision (1)網絡提出的背景 論文題目:ImageNet Classification with Deep Convolutional Neural Networks arXiv地址:https://arxiv.org/abs/1207.0575 在2012年ImageNet大規模視覺識別挑戰賽(ILSVRC)中,AlexNet以15…