01-复杂度1. 最大子列和问题(20)
来源:互联网 发布:js捕获事件target 编辑:程序博客网 时间:2024/06/05 04:59
01-复杂度1. 最大子列和问题(20)
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个整数,其间以空格分隔。
输出格式:
在一行中输出最大子列和。如果序列中所有整数皆为负数,则输出0。
输入样例:
6
-2 11 -4 13 -5 -2
输出样例:
20
提交代码
写法一:#include<stdio.h>int MaxSubseqSum(int List[],int n);int main(){ int n,i; scanf("%d",&n); int arr[n]; for(i=0;i<n;i++) scanf("%d",&arr[i]); int Max=MaxSubseqSum(arr,n); printf("%d",Max); return 0;}int MaxSubseqSum(int List[],int n){ int This = 0, Max = 0; int i; for( i = 0; i < n; ++i){ This += List[i]; if(This > Max){ Max = This; } else if(This < 0){ This = 0; } } return Max;}
写法二:#include<stdio.h>#include<stdlib.h> int MaxSubseqSum(const int data[],int len);int main(){ int size,i; int *dataArr,*pdataArr; scanf("%d",&size);//表示分配的文件空间 dataArr = (int *)malloc(size*sizeof(int)); pdataArr = dataArr; for(i=0;i<size;i++) { scanf("%d",pdataArr++); } printf("%d ",MaxSubseqSum(dataArr,size)); free(dataArr); return 0;}int MaxSubseqSum(const int data[],int len){ int MaxSum = 0,ThisSum=0,j; for(j=0;j<len;j++){ ThisSum += data[j]; if(ThisSum>MaxSum) MaxSum=ThisSum; else if(ThisSum<0) ThisSum=0; } return MaxSum;}
0 0
- 01-复杂度1. 最大子列和问题(20)
- 01-复杂度1. 最大子列和问题(20)
- 01-复杂度1. 最大子列和问题(20)
- 01-复杂度1. 最大子列和问题(20)
- 01-复杂度1. 最大子列和问题(20)
- 01-复杂度1. 最大子列和问题(20)
- 01-复杂度1. 最大子列和问题(20)
- 01-复杂度1. 最大子列和问题(20)
- 01-复杂度1. 最大子列和问题(20)
- 01-复杂度1. 最大子列和问题(20)
- 01-复杂度1. 最大子列和问题(20)
- 01-复杂度1. 最大子列和问题(20)
- 01-复杂度1. 最大子列和问题(20)
- 01-复杂度1. 最大子列和问题(20)
- 01-复杂度1. 最大子列和问题(20)
- 01-复杂度1. 最大子列和问题(20)
- 01-复杂度1. 最大子列和问题(20)
- 01-复杂度1. 最大子列和问题(20)
- Selenium WebDriver之JavaScript
- android上的i-jetty (1)环境搭建
- 浙大机试2013:A+B and C (64bit) (20)
- Bitmap基本概念及在Android4.4系统上使用BitmapFactory的注意事项
- Android Studio系列教程三--快捷键
- 01-复杂度1. 最大子列和问题(20)
- 增加ubuntu分区的容量
- 【ShaderToy】开篇
- 条形码应用之一--------函数库的简介
- 月薪3000与月薪30000的文案区别
- Android之ArrayAdapter用法总结
- 迪米特法则
- sigsuspend 函数使用 及与 pause 区别
- 提高C++代码质量 - [085]了解指针参数传递内存中的玄机