Kadens Algo (最大子序列)

    public long findMaxSum(int[] arr){
        long max = Integer.MIN_VALUE;
        long curMaxSum = 0;
        for(int i = 0; i < arr.length ; i++){
            curMaxSum = curMaxSum > 0 ? (curMaxSum + arr[i])%mod : arr[i];
            max = Math.max(max, curMaxSum);
        }
        return max > 0 ? max : 0;
    }
    

Last updated

Was this helpful?