Java 最大和邻接子阵

Java 最大和邻接子阵,java,arraylist,contiguous,Java,Arraylist,Contiguous,查找一个数组中的相邻子数组,长度为N,其和最大 输入格式: 第一个也是唯一一个参数包含一个整数数组A 输出格式: 返回一个整数,表示连续子数组的最大可能和 限制条件: 1老实说,我并没有完全理解您想要做的事情,但不管怎样,这里留下的代码示例对于使用动态规划方法解决这个问题来说非常流行和简单。这也就是所谓的 公共静态整数名(列表编号){ int maxSum=numbers.get(0); int tempMax=最大和; 对于(int i=1;i

查找一个数组中的相邻子数组,长度为N,其和最大

输入格式:

第一个也是唯一一个参数包含一个整数数组A

输出格式:

返回一个整数,表示连续子数组的最大可能和

限制条件:


1老实说,我并没有完全理解您想要做的事情,但不管怎样,这里留下的代码示例对于使用动态规划方法解决这个问题来说非常流行和简单。这也就是所谓的

公共静态整数名(列表编号){
int maxSum=numbers.get(0);
int tempMax=最大和;
对于(int i=1;i
1)我认为结果可以是空的;我不确定你能处理好。2) 检查10-100(我来自电话,无法运行)
public class Solution {

public int maxSubArray(final List<Integer> A) {

    ArrayList<Integer> al = new ArrayList<Integer>();
    int sum = 0;
    int max = A.get(0);
    int min = A.get(0);
    for(int i = 0;i < A.size();i++){

        sum += A.get(i);
        al.add(sum);
        if(sum > max) max = sum;

    }

    //to find the min till the index of max
    for(int i = 0; al.get(i) != max;i++) {
        if(al.get(i) < min) min = al.get(i);
    }



    if(min < 0)return max-min;
    else return max;
}



}
public static int name(List<Integer> numbers) {

    int maxSum = numbers.get(0);
    int tempMax = maxSum;

    for (int i = 1; i < numbers.size(); i++) {
        tempMax = Math.max(numbers.get(i), numbers.get(i) + tempMax);
        maxSum = Math.max(maxSum, tempMax);
    }

    return maxSum;
}