日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

连续子数组最大和

發(fā)布時間:2023/12/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 连续子数组最大和 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

來源:https://leetcode.com/problems/maximum-subarray

Find the contiguous subarray within an array (containing at least one number) which has the largest sum.
For example, given the array [-2,1,-3,4,-1,2,1,-5,4],
the contiguous subarray [4,-1,2,1] has the largest sum = 6.

遍歷(時間復(fù)雜度高)

  • 若全負,取最大元素
  • 否則比較以每個元素作為開頭(或結(jié)尾)的所有連續(xù)子數(shù)組的和
  • Python

    class Solution:def FindGreatestSumOfSubArray(self, array):if max(array) < 0:return max(array)max_sum = 0cur_sum = 0for i in range(len(array)):cur_sum = 0for j in range(i, len(array)):cur_sum += array[j]max_sum = max(cur_sum, max_sum)return max_sum

    動態(tài)規(guī)劃

    遍歷一次,計算以當前元素結(jié)尾的連續(xù)子數(shù)組和的最大值:

  • 若以前一個元素結(jié)尾的連續(xù)子數(shù)組和的最大值為正,則,以當前元素結(jié)尾的連續(xù)子數(shù)組和的最大值 = 當前元素 + 以前一個元素結(jié)尾的連續(xù)子數(shù)組和的最大值
  • 否則,以當前元素結(jié)尾的連續(xù)子數(shù)組和的最大值 = 當前元素
  • 比較以當前元素結(jié)尾的連續(xù)子數(shù)組和的最大值與當前全局最大值

    Python

    class Solution:def FindGreatestSumOfSubArray(self, array):if not array:return 0max_sum, cur_sum = array[0], 0for item in array:if cur_sum <= 0:cur_sum = itemelse:cur_sum += itemmax_sum = max(max_sum, cur_sum)return max_sum

    Java

    class Solution {public int maxSubArray(int[] nums) {if(nums.length <= 0) {return 0;}int maxSum = nums[0], curSum = nums[0];for(int i=1; i<nums.length; i++) {if(curSum < 0) {curSum = nums[i];} else {curSum += nums[i];}maxSum = curSum > maxSum ? curSum : maxSum;}return maxSum;} }

    轉(zhuǎn)載于:https://www.cnblogs.com/renzongxian/p/7472124.html

    總結(jié)

    以上是生活随笔為你收集整理的连续子数组最大和的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。