(每日一练28798)题目名称:连续子数组的最大和

文盲老顾
WEB应用领新星创作者
博客专家认证
2023-04-22 00:29:31

给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和 。(测试用例仅做参考,我们会根据代码质量进行评分)

嗯,一维数组还是很简单的,标准做法都已经无数遍了。


n = int(input())
arr = list(map(int,input().split()))
ans = max(arr)
if ans > 0:
    c = 0
    for i in arr:
        c += i
        if c < 0:
            c = 0
        ans = max(ans,c)
print(ans)
...全文
136 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
文盲老顾 2023-06-12
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
class Program {
    public static void Main() {
        int n = int.Parse(Console.ReadLine().Trim());
        string[] inp = Console.ReadLine().Split(' ');
        int ans = int.Parse(inp[0]);
        int c = ans < 0 ? 0 : ans;
        for (int i = 1;i<n;i++){
            c += int.Parse(inp[i]);
            ans = ans > c ? ans : c;
            c = c > 0 ? c : 0;
        }
        Console.WriteLine(ans.ToString());
    }
}
文盲老顾 2023-05-21
  • 打赏
  • 举报
回复
n = parseInt(readline())
arr = readline().split(' ').map(x => parseInt(x))
for (var i = c = 0,ans = mx = arr[0];i<arr.length;i++){
    c = c + arr[i] > 0 ? c + arr[i] : 0
    mx = mx > arr[i] ? mx : arr[i]
    ans = c > ans ? c : ans
}
print(mx < 0 ? mx : ans)

321

社区成员

发帖
与我相关
我的任务
社区描述
主要用于技术交流,包括但不限于 .net,mssql,js,css,python,算法,运维。也可以晒最新技术,美图,运动等。最后,如果有问题,可以提问,老顾能帮忙的会尽量帮忙哦。
前端sqlserverasp.net 技术论坛(原bbs) 北京·西城区
社区管理员
  • 文盲老顾
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧