TopCode之最大子數組和

題目鏈接

53. 最大子數組和 - 力扣(LeetCode)

題目解析

算法原理

解法1: 暴力(一個循環用來固定,一個用來找最大的子數組O(n^2),每次往后拓展一個元素就判斷是否是最長的),枚舉出每一種情況, 然后不斷更新最大的

解法二: dp

1> dp的含義: dp[i]記錄的是以nums[i]為結尾的最大連續子數列和?

2> 遞推公式: 1) 延續前面的計算出來的子序列和繼續累加 dp[i]= nums[i]+dp[i-1]

? ? ? ? ? ? ? ? ? ? ? 2) 沒有延續, 直接以自身為起點 dp[i] = nums[i]

? ? ? ? ? ? ? ? ? ? ? 得出遞推公式:? dp[i]=max(nums[i]+dp[i-1],nums[i])

3> 確定源頭: dp[0]=nums[0]; 就是數組的第一個元素

代碼編寫

解法一: 會超時, 只能過大部分的測試用例

class Solution {public int maxSubArray(int[] nums) {// 暴力int max = Integer.MIN_VALUE;for (int i = 0; i < nums.length; i++) {int tmp = nums[i];max = Math.max(tmp, max);for (int j = i + 1; j < nums.length; j++) {tmp += nums[j];// 每次加一個數就計算最大值max = Math.max(tmp, max);}}// 把找到的最大值返回return max;}
}

dp數組

class Solution {public int maxSubArray(int[] nums) {// 動態規劃// 源int max = nums[0];// 初始化數組的第一個元素int dp = nums[0];// 當前子數組的和for (int i = 1; i < nums.length; i++) {dp = Math.max(nums[i], dp + nums[i]);// 計算子數組max = Math.max(max, dp);// 更新最大子數組的和}return max;}
}

?

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

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

相關文章

深入解析 Flask 命令行工具與 flask run命令的使用

Flask 是一個輕量級的 Python Web 應用框架&#xff0c;其內置的命令行工具&#xff08;CLI&#xff09;基于 Click 庫&#xff0c;提供了方便的命令行接口&#xff0c;用于管理和運行 Flask 應用程序。本文將詳細介紹 Flask 命令行工具的功能&#xff0c;以及如何使用 flask r…

QFramework v1.0 Guide: 工具篇——ViewControllor, ActionKit時序動作執行系統,ResKit資源管理開發解決方案

目錄 一、QFramework.Toolkits簡介 二、View Controllor 1、作用 2、應用場景 3、示例 三、ActionKit時序動作執行系統 1. 用法 &#xff08;1&#xff09;延時回調 &#xff08;2&#xff09;序列執行 &#xff08;3&#xff09;幀延時 &#xff08;4&#xff09;條…

GLIDE論文閱讀筆記與DDPM(Diffusion model)的原理推導

Abstract 擴散模型&#xff08;Diffusion model&#xff09;最近被證明可以生成高質量的合成圖像&#xff0c;尤其是當它們與某種引導技術結合使用時&#xff0c;可以在生成結果的多樣性與保真度之間進行權衡。本文探討了在文本條件圖像生成任務中使用擴散模型&#xff0c;并比…

@Pushgateway 數據自動清理

文章目錄 Pushgateway 數據自動清理一、Pushgateway 數據清理的必要性二、自動清理方案方案1&#xff1a;使用帶TTL功能的Pushgateway分支版本方案2&#xff1a;使用Shell腳本定期清理方案3&#xff1a;結合Prometheus記錄規則自動清理 三、最佳實踐建議四、驗證與維護五、示例…

QML視圖組件ListView、TableView、GridView介紹

1 MVD模型 Model:模型,包含數據及其結構。View:視圖,用于顯示數據。Delegate:代理,規定數據在視圖中的顯示方式。2 ListView 以列表形式展示數據。2.1 屬性 model:設置或獲取列表視圖的數據模型delegate:定義了列表中每一項的外觀和行為currentIndex:獲取或設置當前選…

解決vscode打開一個單片機工程文件(IAR/keil MDK)因無法找到頭文件導致的結構體成員不自動補全問題。

最近一直在用vscode安裝c/c插件后編輯STM32標準庫&#xff08;keil MDK&#xff09;項目源文件&#xff0c;因為我感覺vscode在代碼編輯方面比keil MDK本身優秀太多。發現打開工程后&#xff0c;結構體變量的成員在輸入“.”后不自己彈出的問題&#xff0c;后來查找各方資料&am…

5分鐘申請edu郵箱【方案本周有效】

這篇文章主要展示的是成果。如果你是第1次看見我的內容&#xff0c;具體的步驟請翻看往期的兩篇作品。先看更正補全&#xff0c;再看下一個。 建議你邊看邊操作。 【更正補全】edu教育申請通過方案 本周 edu教育郵箱注冊可行方案 #edu郵箱 偉大無需多言 我已經驗證了四個了…

零知開源——STM32F407VET6驅動ILI9486 TFT顯示屏 實現Flappy Bird游戲教程

簡介 本教程使用STM32F407VET6零知增強板驅動3.5寸 ILI9486的TFT觸摸屏擴展板實現經典Flappy Bird游戲。通過觸摸屏控制小鳥跳躍&#xff0c;躲避障礙物柱體&#xff0c;挑戰最高分。項目涉及STM32底層驅動、圖形庫移植、觸摸控制和游戲邏輯設計。 目錄 簡介 一、硬件準備 二…

云臺式激光甲烷探測器:守護工業安全的“智慧之眼”

在石油化工、天然氣場站、城市燃氣管網等場景中&#xff0c;甲烷泄漏的早期監測是保障生產安全的核心防線。云臺式激光甲烷探測器憑借高精度、無接觸、智能化的技術優勢&#xff0c;成為工業安全監測領域的革新者。本文將深度解析其技術原理、核心功能及適用場景&#xff0c;助…

解決 Ubuntu 20.04 虛擬機中 catkin_make 編譯卡死問題

完整解決步驟 1. 禁用當前交換文件 sudo swapoff /swapfile 2. 刪除舊的交換文件 sudo rm /swapfile 3. 使用更可靠的創建方法 # 使用 dd 命令創建交換文件&#xff08;更兼容但較慢&#xff09; sudo dd if/dev/zero of/swapfile bs1M count4096# 或者使用 truncate 命令…

實驗設計與分析(第6版,Montgomery)第5章析因設計引導5.7節思考題5.7 R語言解題

本文是實驗設計與分析&#xff08;第6版&#xff0c;Montgomery著&#xff0c;傅玨生譯) 第5章析因設計引導5.7節思考題5.7 R語言解題。主要涉及方差分析&#xff0c;正態假設檢驗&#xff0c;殘差分析&#xff0c;交互作用圖&#xff0c;等值線圖。 dataframe <-data.frame…

linux變量的分類

文章目錄 bash中的引號linux變量的分類1.環境變量2.本地變量&#xff1a;3.局部變量4.內置變量5. 位置參數變量6. 特殊變量 變量的定義規則8.數組 bash中的引號 雙引號"" &#xff1a;會把引號的內容當成整體來看待&#xff0c;允許通過 符號引用其他變量值單引 號 …

邏輯回歸知識點

一、邏輯回歸概念 邏輯回歸(Logistic Regression)是一種廣泛應用于分類問題的統計方法&#xff0c;尤其適用于二分類問題。 注意: 盡管名稱中有"回歸"二字&#xff0c;但它實際上是一種分類算法。 解決二分類的問題。 API&#xff1a;sklearn.linear_model.Logis…

GCC內存占用統計使用指南

GCC 的 --print-memory-usage 選項用于在編譯鏈接過程中輸出程序的內存占用統計信息&#xff0c;特別適用于嵌入式開發等內存受限的場景。其主要作用和輸出內容如下&#xff1a; 核心功能 顯示內存分段占用 輸出程序在目標設備內存中的分段占用情況&#xff0c;通常包括&#…

Vue3 + Typescript:類型使用記錄 / 類型注解 / 積累

一、ReturnType<typeof createApp> ReturnType<typeof createApp> 是一種類型安全的寫法&#xff0c;是 TypeScript 中的一個高級類型&#xff0c;它用于獲取函數 createApp 的返回類型。 實例&#xff1a; import registerFocus from ./focus // 獲取焦點 impo…

SIFT 算法原理詳解

SIFT 算法原理詳解 SIFT&#xff08;尺度不變特征變換&#xff0c;Scale-Invariant Feature Transform&#xff09;是一種經典的局部特征檢測和描述算法&#xff0c;它能夠在不同的尺度、旋轉和光照變化下穩定地檢測圖像特征。SIFT 主要包括以下幾個步驟&#xff1a;尺度空間極…

2024年認證杯SPSSPRO杯數學建模D題(第二階段)AI繪畫帶來的挑戰解題全過程文檔及程序

2024年認證杯SPSSPRO杯數學建模 D題 AI繪畫帶來的挑戰 原題再現&#xff1a; 2023 年開年&#xff0c;ChatGPT 作為一款聊天型AI工具&#xff0c;成為了超越疫情的熱門詞條&#xff1b;而在AI的另一個分支——繪圖領域&#xff0c;一款名為Midjourney&#xff08;MJ&#xff…

電子電路:全面深入了解晶振的定義、作用及應用

本次了解重點: 1.壓電效應的數學描述 2.生產工藝以及關鍵工序 3.電路設計部分如負阻原理和匹配電容計算 4.失效案例比如冷啟動問題 5.新形態晶振技術引入5G和量子計算 6.溫補晶振的補償機制 7故障案例講解-更換負載電池或增加預熱電路 藍牙音頻斷續-頻偏導致 工控機死機-起振電…

【Java實用工具類】手擼SqlBuilder工具類,優雅拼接動態SQL,MyBatisPlus同款風格!

&#x1f4cc; 正文&#xff1a; 有時候我們項目底層是 JdbcTemplate 查詢&#xff0c;沒法像 MyBatisPlus 一樣用 Wrapper 拼接條件&#xff0c;但我們又不想手擼字符串。那怎么辦&#xff1f;我今天就給你整了個 SqlBuilder 工具類&#xff0c;支持 eq、ne、like、in、gt、l…

WEB3——開發者怎么查看自己的合約日志記錄

在區塊鏈中查看合約的日志信息&#xff08;也叫事件 logs&#xff09;&#xff0c;主要有以下幾種方式&#xff0c;具體方法依賴于你使用的區塊鏈平臺&#xff08;如 Ethereum、BSC、Polygon 等&#xff09;和工具&#xff08;如 Etherscan、web3.js、ethers.js、Hardhat 等&am…