class Solution { func f(_ L: Int, _ R: Int, _ a: [Int]) -> Int { if L >= R { return a[R] } else { let mid = (L + R) / 2 let Lmax = f(L, mid, a) let Rmax = f(mid + 1, R, a) var max1 = a[mid] var max2 = a[mid + 1] var sum1 = 0 var sum2 = 0 for i in (L...mid).reversed() { sum1 += a[i] max1 = max(max1, sum1) } for i in (mid + 1)...R { sum2 += a[i] max2 = max(max2, sum2) } let Mmax = max1 + max2 return max(Mmax, max(Lmax, Rmax)) } }

func maxSubArray(_ nums: [Int]) -> Int {
    return f(0, nums.count - 1, nums)
}
class Solution public int fint Lint Rvectorint& a		ifL=R return aR;		else			int mid=L+R1Lmax=fLmidaRmax=fmid+1Ramax1=amidmax2=amid+1sum1=0sum2=0;			forint i=mid;i=L;i--				sum1+=ai;				max1=maxmax1

原文地址: http://www.cveoy.top/t/topic/itBd 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录