題目:
給定乙個整數陣列 nums ,找到乙個具有最大和的連續子陣列(子陣列最少包含乙個元素),返回其最大和。示例:輸入: [-2,1,-3,4,-1,2,1,-5,4
],輸出:
6解釋: 連續子陣列 [
4,-1,2,1] 的和最大,為 6
。高階:
如果你已經實現複雜度為 o(n) 的解法,嘗試使用更為精妙的分治法求解。
解題思路:
o(n)的解法:
classsolution
for(int i = 0;i < nums.size();++i)
if(sum < 0
) }
return
res;
}};
分治法:
classsolution
int maxleft =maxsum(nums,l,mid);
int maxright = maxsum(nums,mid+1
,r);
/*left max sub array
*/for(int i = mid;i>=l;--i)
/*right max sub array
*/sum = 0
;
for(int i = mid+1;i <= r;++i)
return max(leftsum+rightsum,max(maxleft,maxright));
}int maxsubarray(vector&nums)
};
演算法 最大子序和
題目描述 給定乙個整數陣列 nums 找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。示例 輸入 2,1,3,4,1,2,1,5,4 輸出 6 解釋 連續子陣列 4,1,2,1 的和最大,為 6。高階 如果你已經實現複雜度為 o n 的解法,嘗試使用更為精妙的分治法求解。解題方...
swift演算法 最大子序和
1 描述 給定乙個整數陣列 nums,找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。例1 輸入 2,3,1,1,3 輸出 3 解釋 連續子陣列 3,1,1 的和最大,為3 例2 輸入 2,1,3,4,1,2,1,5,4 輸出 6 解釋 連續子陣列 4,1,2,1 的和最大,為...
演算法(2) 最大子序和
給定乙個整數陣列nums,找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。示例 輸入 2,1,3,4,1,2,1,5,4 輸出 6 解釋 連續子陣列 4,1,2,1 的和最大,為 6。本題,意為在乙個陣列裡面找到乙個連續子陣列,並且這個子陣列是所有連續子陣列中和最大的。咱們就一...