91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

leetcode中如何找到最大子序和

發布時間:2022-01-17 11:50:38 來源:億速云 閱讀:143 作者:小新 欄目:大數據

小編給大家分享一下leetcode中如何找到最大子序和,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

 

題目鏈接

https://leetcode-cn.com/problems/maximum-subarray/

 

題目描述

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

示例:

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

進階:

如果你已經實現復雜度為 O(n)的解法,嘗試使用更為精妙的分治法求解。

 

解題方案

 

思路

  • 標簽:動態規劃

  • 這道題用動態規劃的思路并不難解決,比較難的是后文提出的用分治法求解,但由于其不是最優解法,所以先不列出來

  • 動態規劃的是首先對數組進行遍歷,當前最大連續子序列和為sum,結果為ans

  • 如果sum > 0,則說明sum對結果有增益效果,則sum保留并加上當前遍歷數字

  • 如果sum <= 0,則說明sum對結果無增益效果,需要舍棄,則sum直接更新為當前遍歷數字

  • 每次比較 sumans的大小,將最大值置為ans,遍歷結束返回結果

  • 時間復雜度:O(n)

 

代碼

  • Java版本

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;
   }
}
 
  • JavaScript版本

/**
* @param {number[]} nums
* @return {number}
*/
var maxSubArray = function(nums) {
   let ans = nums[0];
   let sum = 0;
   for(const num of nums) {
       if(sum > 0) {
           sum += num;
       } else {
           sum = num;
       }
       ans = Math.max(ans, sum);
   }
   return ans;
};
   

畫解

leetcode中如何找到最大子序和

leetcode中如何找到最大子序和

leetcode中如何找到最大子序和

leetcode中如何找到最大子序和

leetcode中如何找到最大子序和

leetcode中如何找到最大子序和

以上是“leetcode中如何找到最大子序和”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

竹溪县| 武乡县| 唐河县| 城步| 武隆县| 麻栗坡县| 那坡县| 方正县| 梅州市| 车险| 海门市| 平南县| 石泉县| 阳高县| 福鼎市| 宁国市| 正阳县| 五莲县| 浦东新区| 大丰市| 松江区| 桦甸市| 沁源县| 普洱| 青铜峡市| 潮安县| 鄂尔多斯市| 七台河市| 吉木萨尔县| 六枝特区| 乐安县| 呼伦贝尔市| 琼海市| 博野县| 安吉县| 米脂县| 孝义市| 广饶县| 清水县| 乐清市| 佳木斯市|