C# DataTable常見用法彙總
阿新 • • 發佈:2020-09-01
https://leetcode-cn.com/problems/maximum-subarray/
給定一個整數陣列 nums ,找到一個具有最大和的連續子陣列(子陣列最少包含一個元素),返回其最大和。 示例: 輸入: [-2,1,-3,4,-1,2,1,-5,4]輸出: 6
解釋: 連續子陣列 [4,-1,2,1] 的和最大,為 6。
int maxSubArray(int* nums, int numsSize){ if(numsSize==0) return 0; if(numsSize==1) return nums[0]; return helper(nums,0,numsSize-1); } int helper(int *nums,int l,int r) { int mid=(l+r)/2; if(l>=r) return nums[l]; int left=helper(nums,l,mid-1); int right=helper(nums,mid+1,r); int lsum=0,rsum=0; int max1=0; int max2=0; int max; for(int i=mid-1;i>=l;i--) { lsum+=nums[i]; max1=max1>lsum?max1:lsum; } for(int j=mid+1;j<=r;j++) { rsum+=nums[j]; max2=max2>rsum?max2:rsum; } max=left>right?left:right; return max>(max1+max2+nums[mid])?max:(max1+max2+nums[mid]); }
①考慮中間元素時,左右兩邊序列的最大序列和最小應為0
輸入: [-1,0,-2] 預期: 0