例如, 我们有最大的连片子阵的总和大小不大于k
{2,2,-1},
when k = 0, return -1.
when k = 3, return 3.
,因为我们有负数和一个额外的变量k这甚至棘手。 k可以是任何值,否定的,不作任何假设。
我不能参考https://en.wikipedia.org/wiki/Maximum_subarray_problem和https://www.youtube.com/watch?v=yCQN096CwWM来解决这个问题。
任何身体能帮助我吗?更好地使用Java或JavaScript。
下面是一个经典算法O(N)的最大(无变量k):
public int maxSubArray(int[] nums) {
int max = nums[0];
int tsum = nums[0];
for(int i=1;i<nums.length;i++){
tsum = Math.max(tsum+nums[i],nums[i]);
max = Math.max(max,tsum);
}
return max;
}
任何复杂性要求的O(nlogn)溶液? – Nelfeal
没有更多的要求,你能解决它吗? –
什么值不能大于k?子阵列的长度或子阵列的总和?答案是[1,2,3],k = 2是5还是2? –