zoukankan      html  css  js  c++  java
  • 返回一个整数数组中最大子数组的和

    题目要求如下:

    解题思路:从第二项开始到数组末尾,比较该项与前一项相加后值是否变大,若变大,则将当前项的值置为他与前一项的和,否的话就不变。这样处理结束后,第n项的值,就是原数组前n项中的最大连续子数组的和,最后只要取处理完毕后的数组中最大的一项即可。

    C++代码如下:

    #include<iostream>
    using namespace std;
    void main()
    {
    	int s[100];
    	int n,max;
    	//输入数组长度
    	cin >> n;
    	for (int i = 0;i < n;i++)
    	{
    		//输入数组元素
    		cin>> s[i];
    	}
    
    	//max初始化为s[0]
    	max = s[0];
    	for (int i = 1;i < n;i++)
    	{
    		//比较与前一项相加值是否会增大
    		if ((s[i] + s[i - 1] )> s[i])
    		{
    		
    			s[i] = s[i] + s[i - 1];
    			
    		}
    		//更新max的值
    		if (max < s[i])max = s[i];
    	}
    	cout << "最连续大子集和:" << max << endl;
    
    }
    

      

  • 相关阅读:
    redis 数据库总结
    drf 序列化类总结
    drf 视图类经典总结
    celery 简介
    虚拟环境搭建pip换源
    git 与 svn,简介差别
    redis 数据库简介
    auth 模块
    python的注释与用户交互 基本数据类型
    python入门
  • 原文地址:https://www.cnblogs.com/liuleliu/p/12362928.html
Copyright © 2011-2022 走看看