321
社区成员




给定一个整数数组 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)
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());
}
}
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)