是张三三呀 2022-10-10 14:35 采纳率: 100%
浏览 33
已结题

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

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

给定一个整数数组 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; i<arr.length; 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

求求帮忙指点一下,万分感谢
  • 写回答

1条回答 默认 最新

  • 肩匣与橘 游戏开发领域新星创作者 2022-10-11 17:03
    关注

    img


    【望采纳】

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月25日
  • 已采纳回答 10月17日
  • 创建了问题 10月10日

悬赏问题

  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 Revit2020下载问题
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大