每日一练的,连续子数组的最大和,提交显示不通过

连续子数组的最大和
每日一练中遇到的问题,测试用例已经通过,但是提交提示不成功,不知道是哪里有问题

给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和

示例

img

我的解答思路和代码

找到的规律是:

从数组第一项开始累加,
累加的结果,比当前累加到的元素小,
说明不可能累加值为最大,
所以找到的连续子数组的元素,要从当前元素开始,
最大值也变为当前元素


// 请关闭中文输入法,用英文的字母和标点符号。
// 如果你想运行系统测试用例,请点击【执行代码】按钮,如果你想提交作答结果,请点击【提交】按钮,
// 注意:除答案外,请不要打印其他任何多余的字符,以免影响结果验证
// 本OJ系统是基于 OxCoder 技术开发,网址:www.oxcoder.com
// 模版代码提供基本的输入输出框架,可按个人代码习惯修改

class Solution {
    solution(n, arr) {
        // TODO: 请在此编写代码
        if(n==0) {
           return '请输入数据' 
        }
        if(n==1) {
            return arr[0]
        }
        if(n !== arr.length) {
            return '数据格式不正确'
        }
        
        let sum = arr[0]
        let max = arr[0]
        for(let i=1; ilength; i++) {
            sum += arr[i]
          if(sum < arr[i]) {
            sum = arr[i]
            max = arr[i]
          } else {
            if(sum > max) {
              max = sum
            }
         }
        }
        return max;
    }
}

var str_0 = readline().trim();
var n = parseInt(str_0);


var str_1 = readline();
var line_list_1 = str_1.trim().split(" ");        
var arr = new Array();
for(var i = 0; i < line_list_1.length; i++){
    arr[i] = parseInt(line_list_1[i]);
}
        

let sol = new Solution();
result = sol.solution(n, arr);
print(result);


运行结果及报错内容

img

求求帮忙指点一下,万分感谢

img


【望采纳】