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

     该题的意思是 如果一个数组为   

    -1 5 3 -19 5 3    第一个数之后若是该数与前一个数之和大于该数那么将这个和替换概数 即5-1<5,5不变 。 

    而5+3>5 则将三替换为8以此类推

     当一个数与前一个数之和再次小于这个数时,这个数为一个下一个的最小数组,

    如5+3-19=-11+5<5 则5为下一个最小数组的开始。

    用代码表示 a[i]+a[i-1]>a[i]; a[i]=  a[i]+a[i-1];  max=(max,a[i]);

    #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;
    
    }
    

      

    3+5-3+6=11

  • 相关阅读:
    基本Dos命令
    安装java开发环境
    windouws常用快捷键
    elasticsearch(ES)
    使用kibana操作elasticsearch(es)
    Dubbo的负载均衡
    springboot结合Dubbo的使用
    Dubbo
    zookeeper-理解
    springboot结合FTP服务器实现文件上传
  • 原文地址:https://www.cnblogs.com/dwx8845/p/12373653.html
Copyright © 2011-2022 走看看