首页 > 试题广场 >

求连续子数组的最大和

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

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

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


输出描述:
13
示例1

输入

-6,-9,-10

输出

0
package main

import (
    "fmt"
)

func main() {
    var x,sum,max int
    for{
        _,ok:=fmt.Scan(&x)
        if ok!=nil{
            break
        }
        if sum+x<x{
            sum=x
        }else{
            sum+=x
        }
        if sum>max{
            max=sum
        }
    }
    fmt.Print(max)
}

发表于 2023-03-21 12:28:12 回复(0)