每日一題——連續子數組的最大和

題目


輸入一個長度為n的整型數組array,數組中的一個或連續多個整數組成一個子數組,子數組最小長度為1。求所有子數組的和的最大值。

數據范圍:1<=n<=2×105 ?100<=a[i]<=100

要求:時間復雜度為 O(n),空間復雜度為 O(n)

示例1

輸入:
[1,-2,3,10,-4,7,2,-5]
返回值:
18
說明:
經分析可知,輸入數組的子數組[3,10,-4,7,2]可以求得最大和為18

示例2

輸入:
[2]
返回值:
2

思路


這題屬于動態規劃,可以使用狀態轉移方程求得子數組的最大值。

  • 用dp數組表示以下標i為終點的最大連續子數組和。
  • 遍歷數組,每次遇到一個新的數組元素,連續的子數組要么加上變得更大,要么這個元素本身就更大,就可以舍棄之前的子數組。狀態轉移方程為dp[i]=max(dp[i?1]+array[i],array[i])。
  • 維護一個最大值記錄當前已經得到的最大和的值。

解答代碼


#include <algorithm>
#include <vector>
class Solution {
public:/*** @param array int整型vector * @return int整型*/int FindGreatestSumOfSubArray(vector<int>& array) {// write code hereif (array.empty()) {return 0;}auto size = array.size();vector<int> dp(size, 0);dp[0] = array[0];int max_sum = dp[0];for (int i = 1; i < size; i++) {//狀態轉移方程dp[i] = max(dp[i-1] + array[i], array[i]);//記錄最大值max_sum = max(dp[i], max_sum);}return max_sum;}
};

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

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

相關文章

ubuntu中安裝python

最簡單方便的是 apt 使用第三方的 ppa 源&#xff0c;然后直接 apt 安裝 python3.9 安裝 software-properties-common 獲取add-apt-repository命令&#xff1a;apt install -y software-properties-common添加第三方的 ppa 源&#xff1a;add-apt-repository ppa:deadsnakes/p…

Spring系列篇--關于Spring Bean完整的生命周期【附有流程圖,超級易懂】

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下來看看由輝輝所寫的關于Spring的相關操作吧 目錄 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.Spring Bean是單例模式還是多例模式 二…

Kafka如何保證消息?定能被消費

Kafka 通過多種機制來保證消息一定能被消費&#xff0c;從而實現數據的可靠性和持久性。 以下是一些常見的方法和策略來提高消息的可靠性&#xff1a; 復制機制&#xff1a; Kafka 使用了分區和副本的概念。每個分區可以有多個副本&#xff0c;分布在不同的 Broker 上。當消息…

k8s 自身原理 3

前面有分享到 master 主節點上的 四個組件&#xff0c;etcd&#xff0c;ApiServer&#xff0c;scheduler&#xff0c;controller manager 接下來我們分享一波 woker 節點上的組件&#xff0c;xdm 還記得 worker 節點上都有什么嗎&#xff1f; kubeletkube-proxy實際的服務對應…

【數據結構】棧和隊列常見題目

文章目錄 有效的括號用隊列實現棧兩個隊列實現棧一個隊列實現棧用棧實現隊列設計循環隊列最小棧棧的壓入&彈出序列逆波蘭表達式隊列:先進先出 棧:后進先出 有效的括號 https://leetcode.cn/problems/valid-parentheses/ class Solution {public:bool isValid(string s) {…

如何讓多線程步調一致?

前幾天老板突然匆匆忙忙的過來說對賬系統最近越來越慢了&#xff0c;能不能快速優化一下&#xff1f;我了解了對賬系統的業務后&#xff0c;發現還是挺簡單的&#xff0c;用戶通過在線商城下單&#xff0c;會生成電子訂單&#xff0c;保存在訂單庫。之后物流會生成派送單給用戶…

Redis - 數據類型映射底層結構

簡介 從數據類型上體現就是&#xff0c;同一個數據類型&#xff0c;在不同的情況下會使用不同的編碼類型&#xff0c;底層所使用的的數據結構也不相同。 字符串對象 字符串對象的編碼可以是 int、raw 和 embstr 三者之一。 embstr 編碼是專門用于保存簡短字符串的一種優化編…

每日一學——無線基礎知識

無線局域網&#xff08;Wireless Local Area Network&#xff0c;簡稱 WLAN&#xff09;是一種使用無線通信技術連接多個無線終端設備的局域網。它通常基于無線電波傳輸數據&#xff0c;并使用無線接入點&#xff08;Access Point&#xff0c;簡稱 AP&#xff09;來連接無線設備…

網絡安全--負載均衡

負載均衡 webshell實踐 一、負載均衡配置 1.在全局的http下寫下它&#xff1a; upstream nginx_boot{# 30s內檢查心跳發送兩次包&#xff0c;未回復就代表該機器宕機&#xff0c;請求分發權重比為1:2server 192.168.0.000:8080 weight100 max_fails2 fail_timeout30s; ser…

LeetCode150道面試經典題-- 合并兩個有序鏈表(簡單)

1.題目 將兩個升序鏈表合并為一個新的 升序 鏈表并返回。新鏈表是通過拼接給定的兩個鏈表的所有節點組成的。 2.示例 示例 1&#xff1a; 輸入&#xff1a;l1 [1,2,4], l2 [1,3,4] 輸出&#xff1a;[1,1,2,3,4,4] 示例 2&#xff1a; 輸入&#xff1a;l1 [], l2 [] 輸…

k8s 中快速啟動curl pod 做api test

場景 k8s上運行的pod需要進行api測試,由于開發使用的鏡像都是最小化構建,不能保證現有的pod中一定有curl工具,于是需要啟動一個帶有curl工具的測試pod專門進行api測試 指令 kubectl run curl-test-pod --imagecurlimages/curl -n {namespace} -i --tty -- sh上述指令實現在指…

“一日之際在于晨”,歡迎蒞臨WAVE SUMMIT上午場:Arm 虛擬硬件早餐交流會

8月16日&#xff0c;盛夏的北京將迎來第九屆WAVE SUMMIT深度學習開發者大會。在峰會主論壇正式開啟前&#xff0c;讓我們先用一份精美的元氣早餐&#xff0c;和一場“Arm虛擬硬件交流會”&#xff0c;喚醒各位開發小伙伴的開發魂&#xff01; 8月16日&#xff0c;WAVE SUMMIT大…

時序預測 | MATLAB實現WOA-CNN-LSTM鯨魚算法優化卷積長短期記憶神經網絡時間序列預測

時序預測 | MATLAB實現WOA-CNN-LSTM鯨魚算法優化卷積長短期記憶神經網絡時間序列預測 目錄 時序預測 | MATLAB實現WOA-CNN-LSTM鯨魚算法優化卷積長短期記憶神經網絡時間序列預測預測效果基本介紹模型描述程序設計學習總結參考資料 預測效果 基本介紹 時序預測 | MATLAB實現WOA-…

華為OD真題--字符串中最小的整數和--帶答案

1. 華為OD機考題 答案 2023華為OD統一考試&#xff08;AB卷&#xff09;題庫清單-帶答案&#xff08;持續更新&#xff09; 2023年華為OD真題機考題庫大全-帶答案&#xff08;持續更新&#xff09; 2. 面試題 一手真實java面試題&#xff1a;2023年各大公司java面試真題匯總--…

java導入excel圖片處理

直接看代碼吧&#xff0c;主要邏輯吧excel的圖片拿到 壓縮上傳獲取url // 將文件轉成XSSFWorkbook工作簿XSSFWorkbook wb new XSSFWorkbook(uploadFile);// 獲取工作薄中第一個excel表格XSSFSheet sheet wb.getSheetAt(0);// 核心&#xff1a;&#xff1a;&#xff1a;獲取ex…

R語言APSIM模型進階應用與參數優化、批量模擬實踐技術

隨著數字農業和智慧農業的發展&#xff0c;基于過程的農業生產系統模型在模擬作物對氣候變化的響應與適應、農田管理優化、作物品種和株型篩選、農田固碳和溫室氣體排放等領域扮演著越來越重要的作用。APSIM (Agricultural Production Systems sIMulator)模型是世界知名的作物生…

《論文閱讀14》FAST-LIO

一、論文 研究領域&#xff1a;激光雷達慣性測距框架論文&#xff1a;FAST-LIO: A Fast, Robust LiDAR-inertial Odometry Package by Tightly-Coupled Iterated Kalman Filter IEEE Robotics and Automation Letters, 2021 香港大學火星實驗室 論文鏈接論文github 二、論文概…

LeetCode49.字母異味詞分組

我一開始的思路就是用1個hashmap<Integer,List<String>>,Integer存的的是字符串所有字母ASCLL值的和&#xff0c;List里面放異位字符串&#xff0c;但是不是異位的字符串的ascll值也可能相同比如acd和abe&#xff0c;所以這個hashmap只能降低一點時間復雜度我還是要…

Vue--》打造個性化醫療服務的醫院預約系統(六)

今天開始使用 vue3 + ts 搭建一個醫院預約系統的前臺頁面,因為文章會將項目的每一個地方代碼的書寫都會講解到,所以本項目會分成好幾篇文章進行講解,我會在最后一篇文章中會將項目代碼開源到我的GithHub上,大家可以自行去進行下載運行,希望本文章對有幫助的朋友們能多多關…

Web APIs 第六天

正則表達式介紹語法元字符修飾符 一.正則表達式介紹 ① 簡介 用來匹配字符串中字符組合的模式在JavaScript中&#xff0c;正則表達式也是對象通常用來查找&#xff0c;替換那些符合正則表達式的文本&#xff0c;許多語言都支持正則表達式 ② 使用場景 驗證表單&#xff1a…