zoukankan      html  css  js  c++  java
  • 算法--求出子序列中最大的和

    实验楼作业

    输入一组整数,求出这组数字子序列和中的最大值,只要求出子序列中最大的和,不必求出最大值对应的序列。
    最大子序列和:整数序列A1, A2,... An (可能有负数),求A1An的一个子序列AiAj,使得Ai到Aj的和最大。
    例如:
    序列:2,2,-3,4,5,6。则最大子序列和为15。

    代码实现

    #include <stdio.h>
    
    int main()
    {
        int serial[] = {1,2,-3,4,5};//输入的序列
    	int max_sum = 0;//子序列的最大的和
    	int w,n;//w是外层循环,自子序列的第一个值;n是内层循环,在w的基础上加n,serial[w+n]就是子序列的第n个值
    	for(w=0;w<5;w++)//外层循环,数组每个元素都做一次子序列头
    	{
    		int msum = 0;//临时变量,每个子序列的和
    		for(n=0;n+w<5;n++)//在子序列的最后一个值,不超过数组最大下标时,就可以一直自加求和
    		{
    			msum += serial[w+n];
    			
    		}
    		if(msum > max_sum)//如果有子序列和比之前的大,那就挑出最大的来
    		{
    			max_sum = msum;
    		}
    	}
    	printf("the max_sum is %d",max_sum);//输出结果
       return 0;
    }
    

    运算结果

    the max_sum is 9

    总结感悟

    说实话,自从工作以来,从未认真对待过算法与数据结构,入行半年多了,到9月的话算一整年。
    算法与数据结构必须补上来。
    今天是一个开始,万事开头难,只要开始了坚持下去,积分的力量你懂得。
    上面的话很俗套,但是确为肺腑之言,我也明白了,为什么这么俗套的话,我们却经常看见有人提起
    那正是因为,心中所感,是然。

  • 相关阅读:
    九度oj 题目1525:子串逆序打印
    九度oj 题目1516:调整数组顺序使奇数位于偶数前面
    九度oj 题目1490:字符串链接
    九度oj 题目1438:最小公倍数
    九度oj 题目1181:遍历链表
    九度oj 题目1179:阶乘
    九度oj 题目1077:最大序列和
    九度oj 题目1075:斐波那契数列
    九度oj 题目1074:对称平方数
    九度oj 题目1073:杨辉三角形
  • 原文地址:https://www.cnblogs.com/houser0323/p/11001360.html
Copyright © 2011-2022 走看看