MOOC 01-复杂度1 最大子列和问题

#include<stdio.h>
int main(){
    int result = 0,thissum = 0, N, digit;
    scanf("%d", &N);
    for(int i = 0; i < N; i++){
        scanf("%d", &digit);
        thissum += digit;
        if(thissum > result)
            result = thissum;
        if(thissum < 0)   thissum = 0;
    }
    printf("%d", result);
    return 0;
}

原文地址:https://www.cnblogs.com/zjsaipplp/p/10424838.html

时间: 2024-10-12 11:50:38

MOOC 01-复杂度1 最大子列和问题的相关文章

01-复杂度1. 最大子列和问题(20)

给定K个整数组成的序列{ N1, N2, ..., NK },“连续子列”被定义为{ Ni, Ni+1, ..., Nj },其中 1 <= i <= j <= K.“最大子列和”则被定义为所有连续子列元素的和中最大者.例如给定序列{ -2, 11, -4, 13, -5, -2 },其连续子列{ 11, -4, 13 }有最大的和20.现要求你编写程序,计算给定整数序列的最大子列和. 输入格式: 输入第1行给出正整数 K (<= 100000):第2行给出K个整数,其间以空格分隔

01-复杂度1. 最大子列和问题

给定K个整数组成的序列{ N1, N2, ..., NK },“连续子列”被定义为{ Ni, Ni+1, ..., Nj },其中 1 <= i <= j <= K.“最大子列和”则被定义为所有连续子列元素的和中最大者.例如给定序列{ -2, 11, -4, 13, -5, -2 },其连续子列{ 11, -4, 13 }有最大的和20.现要求你编写程序,计算给定整数序列的最大子列和. 输入格式: 输入第1行给出正整数 K (<= 100000):第2行给出K个整数,其间以空格分隔

复杂度_最大子列和问题(1)

给定K个整数组成的序列{ N1??, N2??, ..., NK},"连续子列"被定义为{ Ni??, Ni+1??, ..., Nj},其中 1≤i≤j≤K."最大子列和"则被定义为所有连续子列元素的和中最大者.例如给定序列{ -2, 11, -4, 13, -5, -2 },其连续子列{ 11, -4, 13 }有最大的和20.现要求你编写程序,计算给定整数序列的最大子列和. 本题旨在测试各种不同的算法在各种数据情况下的表现.各组测试数据特点如下: 数据1:与样

复杂度1. 最大子列和问题

给定K个整数组成的序列{ N1, N2, ..., NK },“连续子列”被定义为{ Ni, Ni+1, ..., Nj },其中 1 <= i <= j <= K.“最大子列和”则被定义为所有连续子列元素的和中最大者.例如给定序列{ -2, 11, -4, 13, -5, -2 },其连续子列{ 11, -4, 13 }有最大的和20.现要求你编写程序,计算给定整数序列的最大子列和. 输入格式: 输入第1行给出正整数 K (<= 100000):第2行给出K个整数,其间以空格分隔

数据结构练习 01-复杂度1. 最大子列和问题(20)

给定K个整数组成的序列{ N1, N2, ..., NK },"连续子列"被定义为{ Ni, Ni+1, ..., Nj },其中 1 <= i <= j <= K."最大子列和"则被定义为所有连续子列元素的和中最大者.例如给定序列{ -2, 11, -4, 13, -5, -2 },其连续子列{ 11, -4, 13 }有最大的和20.现要求你编写程序,计算给定整数序列的最大子列和. 输入格式: 输入第1行给出正整数 K (<= 10000

最大子列和问题(剑指offer和PAT)

01-复杂度1 最大子列和问题   (20分) 给定KK个整数组成的序列{ N_1N?1??, N_2N?2??, ..., N_KN?K?? },“连续子列”被定义为{ N_iN?i??, N_{i+1}N?i+1??, ..., N_jN?j?? },其中 1 \le i \le j \le K1≤i≤j≤K.“最大子列和”则被定义为所有连续子列元素的和中最大者.例如给定序列{ -2, 11, -4, 13, -5, -2 },其连续子列{ 11, -4, 13 }有最大的和20.现要求你编

应用实例——最大子列和问题

题目描述:给定N个整数的序列{A1,A2,...,AN},求函数f(i,j)=max{0,ΣAk(i<=k<=j)}的最大值 算法1: 1 int MaxSubseqSum1(int A[],int N){ 2 int ThisSum,MaxSum=0; 3 int i,j,k; 4 for(i=0;i<N;i++){//i是子列左端位置 5 for(j=i;j<N;j++){//j是子列右端位置 6 ThisSum=0; 7 for(k=i;k<j;k++){//ThisS

最大子列和问题(20)

输入格式: 输入第1行给出正整数 K (<= 100000):第2行给出K个整数,其间以空格分隔. 输出格式: 在一行中输出最大子列和.如果序列中所有整数皆为负数,则输出0. 输入样例: 6 -2 11 -4 13 -5 -2 输出样例: 20 最大子列和的算法很多,最简单的可以用三重循环来做,不过O(N^3)的时间复杂度... MOOC里陈越姥姥提到的最优算法在线搜索的时间复杂度是O(N) 下面贴出代码 #include <iostream> using namespace std;

数据结构(一)-----4种方法求最大子列和

数据结构(一)-----4种方法求最大子列和 1.暴力算法 /* 作者:mys 功能:求最大子列和 日期:2018/7/23 */ #include<stdio.h> #include<stdlib.h> #define N 1000 int maxSubseSum(int a[], int n); void main() { int a[N] = { 0 },i; for (i = 0; i < N; i++) a[i] = rand() % 10000; printf(&