LeetCode熱題100--53.最大子數組和--中等

1. 題目

給你一個整數數組 nums ,請你找出一個具有最大和的連續子數組(子數組最少包含一個元素),返回其最大和。

子數組是數組中的一個連續部分。

示例 1:
輸入:nums = [-2,1,-3,4,-1,2,1,-5,4]
輸出:6
解釋:連續子數組 [4,-1,2,1] 的和最大,為 6 。

示例 2:
輸入:nums = [1]
輸出:1

示例 3:
輸入:nums = [5,4,-1,7,8]
輸出:23

2. 題解

class Solution {public int maxSubArray(int[] nums) {int ans = nums[0];int sum = 0;for(int num : nums){if(sum > 0){sum += num;}else{sum = num;}ans = Math.max(ans,sum);}return ans;}
}

3. 解析

出自這位老師:畫手大鵬:畫解算法:53. 最大子序和

  1. int ans = nums[0];
    ans變量初始化為數組的第一個元素,這表示在遍歷開始時,默認的最大子數組和就是第一個元素。這是因為如果所有數都是負數的情況,最大值只能是其中最大的那個。
  2. int sum = 0;
    sum變量用于跟蹤當前正在考慮的連續子數組的和,初始化為0。這個初始值表示在遍歷開始時還沒有累加任何元素。
  3. for(int num : nums)循環體
    這是一個遍歷整個nums數組的循環,使用的是數組遍歷的常見方式。
    int num : nums:將循環變量num賦值為當前遍歷的nums數組中的元素。
  4. if(sum > 0){ sum += num; } else { sum = num; }
    這里的條件判斷用于決定如何更新sum:
    如果當前累積和sum大于0:這意味著繼續向當前子數組中添加num不會使總和變為負數,反而可能會增加。因此,將num加到sum上。
    否則(即sum <=0):意味著繼續向當前子數組添加num會導致總和不增大或者變成負數。為了尋找可能更大的子數組和,應該重新開始一個新的子數組,其值就是當前的num。
  5. ans = Math.max(ans, sum);
    在每一步循環中,更新ans為當前最大值與當前sum的最大值。
    Math.max(ans, sum) 比較當前最大的ans和當前的sum,取較大的那個作為新的ans。
  6. }結束循環
    結束for循環,繼續處理下一個元素。
  7. return ans;
    返回最終的ans值,即整個數組的最大子數組和。

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

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

相關文章

python:練習:2

1.題目&#xff1a;統計一篇英文文章中每個單詞出現的次數&#xff0c;并按照出現次數排序輸出。 示例輸入&#xff1a; text "Python is an interpreted, high-level, general-purpose programming language. Created by Guido van Rossum and first released in 1991…

AI Agent 孵化器?開源框架CAMEL

簡介 CAMEL&#xff08;Communicative Agents for Mind Exploration of Large Scale Language Model Society&#xff09;是一個開源框架&#xff0c;大語言模型多智能體框架的先驅者。旨在通過角色扮演和自主協作&#xff0c;探索大語言模型&#xff08;LLM&#xff09;在多智…

關于插值和擬合(數學建模實驗課)

文章目錄 1.總體評價2.具體的課堂題目 1.總體評價 學校可以開設這個數學建模實驗課程&#xff0c;我本來是非常的激動地&#xff0c;但是這個最后的上課方式卻讓我高興不起哦來&#xff0c;因為老師講的這個內容非常的簡單&#xff0c;而且一個上午的數學實驗&#xff0c;基本…

LayerSkip: Enabling Early Exit Inference and Self-Speculative Decoding

TL;DR 2024 年 Meta FAIR 提出了 LayerSkip&#xff0c;這是一種端到端的解決方案&#xff0c;用于加速大語言模型&#xff08;LLMs&#xff09;的推理過程 Paper name LayerSkip: Enabling Early Exit Inference and Self-Speculative Decoding Paper Reading Note Paper…

解決ktransformers v0.3 docker鏡像中 operator torchvision::nms does not exist 問題

問題背景 更新ktransformers docker鏡像到v0.3版本后&#xff08;之前為v0.2.4post1&#xff09;&#xff0c;使用更新前啟動命令無法正確啟動服務&#xff0c;提示以下錯誤&#xff1a; Traceback (most recent call last):File "/workspace/ktransformers/ktransforme…

如何系統學習音視頻

學習音視頻技術涉及多個領域&#xff0c;包括音頻處理、視頻處理、編碼解碼、流媒體傳輸等。 第一階段&#xff1a;基礎知識準備 目標&#xff1a;掌握音視頻學習所需的計算機科學和數學基礎。 計算機基礎 學習計算機網絡基礎&#xff08;TCP/IP、UDP、HTTP、RTSP等協議&#…

TiDB 可觀測性最佳實踐

TiDB 介紹 TiDB&#xff0c;由 PingCAP 公司自主研發的開源分布式關系型數據庫&#xff0c;是一款創新的 HTAP 數據庫產品&#xff0c;它融合了在線事務處理&#xff08;OLTP&#xff09;和在線分析處理&#xff08;OLAP&#xff09;的能力&#xff0c;支持水平擴容和縮容&…

使用FreeRTOS解決單片機串口異步打印

單片機串口異步打印 文章目錄 單片機串口異步打印前言設計思路準備隊列創建完整代碼 總結 前言 &#x1f30a;在單片機開發中串口的異步打印異步打印允許單片機在執行其他任務的同時進行打印操作&#xff0c;無需等待打印完成后再繼續執行后續代碼&#xff0c;避免了在多處調用…

代碼顏色模式python

1. CMYK&#xff08;印刷場景&#xff09; 例子&#xff1a;某出版社設計書籍封面時&#xff0c;使用 Adobe Illustrator 繪制圖案。 紅色封面的 CMYK 值可能為&#xff1a;C0, M100, Y100, K0&#xff08;通過洋紅和黃色油墨混合呈現紅色&#xff09;。印刷前需將設計文件轉…

HarmonyOS NEXT 詩詞元服務項目開發上架全流程實戰(二、元服務與應用APP簽名打包步驟詳解)

在HarmonyOS應用開發過程中&#xff0c;發布應用到應用市場是一個重要的環節。沒經歷過的童鞋&#xff0c;首次對HarmonyOS的應用簽名打包上架可能感覺繁瑣。需要各種秘鑰證書生成和申請&#xff0c;混在一起分不清。其實搞清楚后也就那會事&#xff0c;各個文件都有它存在的作…

【BotSharp框架示例 ——實現聊天機器人,并通過 DeepSeek V3實現 function calling】

BotSharp框架示例 ——實現聊天機器人&#xff0c;并通過 DeepSeek V3實現 function calling 一、一點點感悟二、創建項目1、創建項目2、添加引用3、MyWeatherPlugin項目代碼編寫4、WeatherApiDefaultService項目代碼編寫5、WebAPI MyWeatherAPI 的項目代碼編寫6、data文件夾中…

百度CarLife實現手機車機無縫互聯

百度CarLife是百度推出的智能車聯網解決方案&#xff0c;通過手機與車機互聯技術&#xff0c;為用戶提供安全便捷的車載互聯網服務體驗。 CarLife 實現手機與車機屏幕的無縫互聯&#xff0c;讓應用內容同步至車載系統&#xff0c;減少駕駛過程中操作手機的頻率&#xff0c;提升…

基于STM32的虛線繪制函數改造

改造前&#xff1a; uint16_t DrawLine(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2) { // GUI_DrawLine( x1, y1, x2, y2); // return 1;int16_t deltaX, deltaY;int16_t error, stepErrorLT, stepErrorGE;int16_t stepX, stepY;int16_t steep;int16_t…

Java高頻面試之并發編程-10

hello啊&#xff0c;各位觀眾姥爺們&#xff01;&#xff01;&#xff01;本baby今天來報道了&#xff01;哈哈哈哈哈嗝&#x1f436; 面試官&#xff1a;ThreadLocalMap 怎么解決 Hash 沖突的&#xff1f; ThreadLocalMap 是 ThreadLocal 的核心實現&#xff0c;它采用 開放…

AI應用實戰:Excel表的操作工具

有個小需求是這樣的&#xff0c;需要在一份數據表里&#xff0c;將1000多個客戶的月報數據分別單獨截圖存檔&#xff0c;有客戶需要的時候就要發給客戶&#xff0c;截圖下來的也是以客戶為命名&#xff0c;這樣查找時也比較容易匹配上。 在沒有寫工具之前&#xff0c;以往財務…

使用 DoH 查詢域名 —— 以 core.tantanapp.com 為例的實戰分析

前言 在現代 iOS 應用中&#xff0c;為了確保 DNS 查詢的隱私和完整性&#xff0c;我們可以使用 DoH&#xff08;DNS over HTTPS&#xff09; 來查詢域名信息。 本文將以 https://cloudflare-dns.com/dns-query?namecore.tantanapp.com&typeA 為例&#xff0c;通過 Postm…

Python----卷積神經網絡(卷積為什么能識別圖像)

一、卷積的概念 卷積是一種數學運算&#xff0c;通常用于信號處理和圖像分析。在卷積神經網絡中&#xff0c;卷積操作用于提取輸入數據&#xff08;如圖像&#xff09;中的特征。通過將輸入數據與卷積核&#xff08;濾波器&#xff09;進行卷積運算&#xff0c;CNN能夠識別圖像…

linux FTP服務器搭建

FTP服務器搭建 系統環境&#xff1a;ubuntu 搭建方式&#xff1a;win系統下通過ssh連接ubuntu&#xff0c;搭建FTP服務 一、ssh連接 ssh -p 端口 用戶名IP ssh -p 22 ubuntu192.168.1.109 密碼&#xff1a;ubuntu123456 二、安裝配置FTP服務器 1、安裝 sudo apt install v…

語音合成之十韻律之美:TTS如何模擬語音的節奏和語調

韻律之美&#xff1a;TTS如何模擬語音的節奏和語調 1. 引言&#xff1a;韻律在語音合成中的重要性1.1 追求自然的TTS&#xff1a;超越可懂度1.2 定義韻律&#xff1a;語音的音樂1.3 韻律為何重要&#xff1a;傳遞意義、情感與自然度 2. TTS韻律建模的基礎技術2.1 利用文本&…

基于強化學習的用于非剛性圖像配準的引導式超聲采集|文獻速遞-深度學習醫療AI最新文獻

Title 題目 Guided ultrasound acquisition for nonrigid image registration usingreinforcement learning 基于強化學習的用于非剛性圖像配準的引導式超聲采集 01 文獻速遞介紹 超聲成像通常用于引導手術和其他醫療程序&#xff0c;在這些過程中&#xff0c;臨床醫生會持…