一、题目描述
给定一个数组a[0,...,n-1],求其最大子数组(长度>=1)和(子数组下标须连续)
输入描述:第一行一个整数n(1<=n<=5000),然后依次输入n个整数(每个整数范围[-5000, 5000])。输出描述:输出一个整数表示最大子数组和
二、暴力做法
思路十分直接。 可先固定起点也可先固定长度,枚举出所有子数组的和。但时间复杂度太高,容易超时。
我的C++代码:
#include "stdafx.h"
#include
using namespace std;
int main()
{
int n;
cin >> n;
给定一个数组a[0,...,n-1],求其最大子数组(长度>=1)和(子数组下标须连续)
输入描述:第一行一个整数n(1<=n<=5000),然后依次输入n个整数(每个整数范围[-5000, 5000])。输出描述:输出一个整数表示最大子数组和
二、暴力做法
思路十分直接。 可先固定起点也可先固定长度,枚举出所有子数组的和。但时间复杂度太高,容易超时。
我的C++代码:
#include "stdafx.h"
#include
using namespace std;
int main()
{
int n;
cin >> n;
int arr[5000];
for (int i = 0; i < n; i++)
cin >> arr[i]; int max = 0;
int sum(int i, int j, int*p);
for (int i = 0; i < n; i++)
for (int j = i; j < n; j++)
if(max
cout << max << endl;
<