首页 > 试题广场 >

求连续子数组的最大和

[编程题]求连续子数组的最大和
  • 热度指数:9366 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
一个非空整数数组,选择其中的两个位置,使得两个位置之间的数和最大。
如果最大的和为正数,则输出这个数;如果最大的和为负数或 0 ,则输出 0

数据范围: ,数组中的值满足

输入描述:
3,-5,7,-2,8


输出描述:
13
示例1

输入

-6,-9,-10

输出

0
while ((line = await readline())) {
        let tokens = line.split(",");

        let arr = tokens.map((item) => +item);
        let len = arr.length;
        let bigNum = 0;
        let i = 0;

        while (i < len) {
            let nowNum = 0;
            for (let j = i; j < len; j++) {
                nowNum += arr[j];
                if (nowNum > bigNum) {
                    bigNum = nowNum;
                }
            }
            i++;
        }
        console.log(bigNum >= 0 ? bigNum : 0)
    }

编辑于 2024-04-24 16:59:14 回复(0)