力扣hot100-普通數組

文章目錄

    • 題目:最大子數組和
      • 方法1 動態規劃
      • 方法2
    • 題目:合并區間
      • 題解

題目:最大子數組和

原題鏈接:最大子數組和
在這里插入圖片描述

方法1 動態規劃

public class T53 {//動態規劃public static int maxSubArray(int[] nums) {if (nums.length == 0) return 0;int[] dp = new int[nums.length]; // dp[i] 表示以 nums[i] 結尾的最大子數組和dp[0] = nums[0]; // 初始化狀態int res = dp[0]; // 初始化最大子數組和// 動態規劃狀態轉移for (int i = 1; i < nums.length; i++) {dp[i] = Math.max(nums[i], dp[i - 1] + nums[i]);  //狀態轉移方程res = Math.max(res, dp[i]);}return res;}public static void main(String[] args) {int[] nums = {-2, 1, -3, 4, -1, 2, 1, -5, 4};System.out.println(maxSubArray(nums)); // 輸出: 6}
}

方法2

方法二可能不容易想到

public class T53 {public int maxSubArray(int[] nums) {// 初始化為int類型最小值int res = nums[0];int tempTotal = 0;for (int i = 0; i < nums.length; i++) {tempTotal += nums[i];// 記錄最大數值res = Math.max(tempTotal, res);if (tempTotal < 0) {// 如果和小于0,就重置為0,因為任何數加上一個負數一定小于當前數值tempTotal = 0;  //0加任何數都等于任何數}}return res;}public static void main(String[] args) {int[] nums = {-2, 1, -3, 4, -1, 2, 1, -5, 4};System.out.println(maxSubArray(nums)); // 輸出: 6}
}

題目:合并區間

原題鏈接:合并區間
在這里插入圖片描述

題解

    public static int[][] merge(int[][] intervals) {if (intervals.length == 0) {return new int[0][2];}// 可使用Lambda表達式Arrays.sort(intervals, new Comparator<int[]>() {@Overridepublic int compare(int[] interval1, int[] interval2) {return interval1[0]-interval2[0];}});List<int[]> merged = new ArrayList<>();for (int[] interval : intervals) {int L = interval[0], R = interval[1];// 如果merged列表為空,或者當前區間與上一個區間不重疊,直接添加當前區間if (merged.isEmpty() || merged.get(merged.size() - 1)[1] < L) {merged.add(new int[]{L, R});} else {// 否則更新上一個區間的右邊界merged.get(merged.size() - 1)[1] = Math.max(merged.get(merged.size() - 1)[1], R);}}//List.toArray(T[] a) 方法將列表中的所有元素存儲到指定類型的數組中return merged.toArray(new int[merged.size()][]);}

核心:
如果新區間的起始值大于 merged 列表中最后一個區間的結束值,則直接將新的區間添加到 merged 列表中;否則,更新 merged 列表中最后一個區間的結束值。

  • 排序區間: 確保區間按照起始值從小到大排列,方便后續合并操作。
  • 遍歷和合并: 遍歷排序后的區間數組,使用一個 merged 列表來存儲合并后的區間。如果當前區間與前一個區間不重疊,直接添加到 merged 列表;如果重疊,更新 merged 列表中最后一個區間的結束值。

?覺得有用的可以留個關注~~?

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

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

相關文章

C++基礎知識-編譯相關

記錄C語言相關的基礎知識 1 C源碼到可執行文件的四個階段 預處理(.i)、編譯(.s)、匯編(.obj)、鏈接。 1.1 預處理 預處理階段&#xff0c;主要完成宏替換、文件展開、注釋刪除、條件編譯展開、添加行號和文件名標識&#xff0c;輸出.i/.ii預處理文件。 宏替換&#xff0c;…

【UML用戶指南】-26-對高級行為建模-狀態圖

目錄 1、概念 2、組成結構 3、一般用法 4、常用建模技術 4.1、對反應型對象建模 一個狀態圖顯示了一個狀態機。在為對象的生命期建模中 活動圖展示的是跨過不同的對象從活動到活動的控制流 狀態圖展示的是單個對象內從狀態到狀態的控制流。 在UML中&#xff0c;用狀態圖…

tcpdump命令詳解及使用實例

1、抓所有網卡數據包&#xff0c;保存到指定路徑 tcpdump -i any -w /oemdata/123.pcap&一、tcpdump簡介 tcpdump可以將網絡中傳送的數據包完全截獲下來提供分析。它支持針對網絡層、協議、主機、網絡或端口的過濾&#xff0c;并提供and、or、not等邏輯語句來去掉無用的信…

【Python】已解決:SyntaxError: positional argument follows keyword argument

文章目錄 一、分析問題背景二、可能出錯的原因三、錯誤代碼示例四、正確代碼示例五、注意事項 已解決&#xff1a;SyntaxError: positional argument follows keyword argument 一、分析問題背景 在Python編程中&#xff0c;當我們在調用函數時混合使用位置參數&#xff08;p…

RabbitMQ進階篇

文章目錄 發送者的可靠性生產者重試機制實現生產者確認 MQ的可靠性數據持久化交換機持久化隊列持久化消息持久化 Lazy Queue(可配置~)控制臺配置Lazy模式代碼配置Lazy模式更新已有隊列為lazy模式 消費者的可靠性消費者確認機制失敗重試機制失敗處理策略 業務冪等性唯一消息ID業…

西部智慧健身小程序+華為運動健康服務

1、 應用介紹 西部智慧健身小程序為用戶提供一站式全流程科學健身綜合服務。用戶通過登錄微信小程序&#xff0c;可享用健康篩查、運動風險評估、體質檢測評估、運動處方推送、個人運動數據監控與評估等公益服務。 2、 體驗介紹西部智慧健身小程序華為運動健康服務核心體驗如…

idea xml ctrl+/ 注釋格式不對齊

處理前 處理后 解決辦法 取消這兩個勾選

核方法總結(三)———核主成分(kernel PCA)學習筆記

一、核主成分 1.1 和PCA的區別 PCA &#xff08;主成分分析&#xff09;對應一個線性高斯模型&#xff08;參考書的第二章&#xff09;&#xff0c;其基本假設是數據由一個符合正態分布的隱變量通過一個線性映射得到&#xff0c;因此可很好描述符合高斯分布的數據。然而在很多實…

ViewBinding的使用(因為kotlin-android-extensions插件的淘汰)

書籍&#xff1a; 《第一行代碼 Android》第三版 開發環境&#xff1a; Android Studio Jellyfish | 2023.3.1 問題&#xff1a; 3.2.4在Activity中使用Toast章節中使用到了kotlin-android-extensions插件,但是該插件已經淘汰,根據網上了解,目前使用了新的技術VewBinding替…

UE4_材質_材質節點_DepthFade

一、DepthFade參數 DepthFade&#xff08;深度消退&#xff09;表達式用來隱藏半透明對象與不透明對象相交時出現的不美觀接縫。 項目說明屬性消退距離&#xff08;Fade Distance&#xff09;這是應該發生消退的全局空間距離。未連接 FadeDistance&#xff08;FadeDistance&a…

【數據分析“三劍客”】—— Pandas

Pandas Pandas 是基于NumPy的一種工具&#xff0c;該工具是為解決數據分析任務而創建的, Pandas提供了大量能使我們快速便捷地處理數據的函數和方法。Pandas與出色的 Jupyter工具包和其他庫相結合&#xff0c;Python中用于進行數據分析的環境在性能、生產率和協作能力方面都是…

光照老化試驗箱:材料耐久性的“時間加速器”

光照老化試驗箱&#xff1a;材料耐久性的“時間加速器”概述 光照老化試驗箱是一種模擬自然光照條件下材料老化過程的設備&#xff0c;廣泛應用于材料科學領域的耐久性能評估。通過模擬日光中的紫外線、熱輻射等環境因素&#xff0c;加速材料老化過程&#xff0c;以此來驗證材…

redhawk:tech file與lefdef layer name不匹配問題

我正在「拾陸樓」和朋友們討論有趣的話題&#xff0c;你?起來吧&#xff1f; 拾陸樓知識星球入口 一些工藝廠商給的redhawk tech file是加密的&#xff0c;讀完tech file再讀lef/def會報錯&#xff0c;根本不知道問題在哪&#xff0c;他們一般會搭配給一個layer map&#xff…

分解+降維+預測!多重創新!直接寫核心!EMD-KPCA-Transformer多變量時間序列光伏功率預測

分解降維預測&#xff01;多重創新&#xff01;直接寫核心&#xff01;EMD-KPCA-Transformer多變量時間序列光伏功率預測 目錄 分解降維預測&#xff01;多重創新&#xff01;直接寫核心&#xff01;EMD-KPCA-Transformer多變量時間序列光伏功率預測效果一覽基本介紹程序設計參…

【簡單講解神經網絡訓練中batch的作用】

&#x1f3a5;博主&#xff1a;程序員不想YY啊 &#x1f4ab;CSDN優質創作者&#xff0c;CSDN實力新星&#xff0c;CSDN博客專家 &#x1f917;點贊&#x1f388;收藏?再看&#x1f4ab;養成習慣 ?希望本文對您有所裨益&#xff0c;如有不足之處&#xff0c;歡迎在評論區提出…

Maven依賴解析過程詳細講解

Maven依賴解析是一個遞歸的過程&#xff0c;涉及從項目的POM文件開始&#xff0c;逐步解析直接依賴和傳遞依賴。以下是詳細的解析過程&#xff1a; 讀取項目的POM文件&#xff1a; Maven首先讀取項目的POM文件 (pom.xml)&#xff0c;該文件定義了項目的直接依賴。 解析直接依賴…

STM32第十五課:LCD屏幕及應用

文章目錄 需求一、LCD顯示屏二、全屏圖片三、數據顯示1.顯示歡迎詞2.顯示溫濕度3.顯示當前時間 四、需求實現代碼 需求 1.在LCD屏上顯示一張全屏圖片。 2.在LCD屏上顯示當前時間&#xff0c;溫度&#xff0c;濕度。 一、LCD顯示屏 液晶顯示器&#xff0c;簡稱 LCD(Liquid Cry…

node_sqlite3.node is not a valid win32 application

electron打包報錯 使用electron在linux平臺打包含有sqlite3的項目為win32應用時在運行階段&#xff0c;有時會遇到下面的錯誤 node_sqlite3.node is not a valid win32 application出現該錯誤的原因主要是在64bit的linux環境中&#xff0c;sqlite3默認build出來的二進制文件不…

【Windows】Visual Studio Installer下載緩慢解決辦法

【Windows】Visual Studio Installer下載緩慢解決辦法 1.背景2.分析3.結果 1.背景 使用visual studio在線安裝包進行IDE安裝&#xff0c;發現下載幾乎停滯&#xff0c;網速幾乎為零。 經過排查并不是因為實際網絡帶寬導致。 這里涉及DNS知識&#xff1b; DNS&#xff08;Dom…

消防認證-防火卷簾

一、消防認證 消防認證是指消防產品符合國家相關技術要求和標準&#xff0c;且通過了國家認證認可監督管理委員會審批&#xff0c;獲得消防認證資質的認證機構頒發的證書&#xff0c;消防產品具有完好的防火功能&#xff0c;是住房和城鄉建設領域驗收的重要指標。 二、認證依據…