public static int findMax(int[]array,int maxSum){ int localSum = 0;//存储当前的可能是目标子集的元素和 int inputSize = array.length; for(int i =0;i0){//如果当前的元素大于0,则把它的值加入当前目标子集的和 if(localSum<0){//如果localSum小于0,那么当前的子集必然不会构成目标子集 localS...
如果不考虑时间复杂度,我们可以枚举出所有子数组并求出他们的和。不过非常遗憾的是,由于长度为n的数组有O(n2)个子数组(即:n + n-1 + ... + 1=n(n+1)/2);而且求一个长度为n的数组的和的时间复杂度为O(n)。因此这种思路的时间是O(n3)。 上边这句话不是原创。 我承认脑子比较笨,只把仨for嵌套的...
进阶: 如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。题目:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。进阶: 如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。思路:贪心法和分而治之程序1:贪心发class Solu...