zoukankan      html  css  js  c++  java
  • 返回一串字符串的最大值(一)。

    1.定义一个vector数组,向里面赋值。然后去除数组末尾的负数。如果全是负数,找到最大的。然后从头相加,直到和为负数,,并重新开始累积和,并随时与当前最大值比较。

    2.源代码

    #include <iostream>
    #include<vector>
    #include<algorithm>
    using namespace std;
    
    void main()
    {
        vector <int> Array;       //声明vector数组。
        int temp = 0;    //用于输入。
        int sum = 0;    //储存当前最大和。
        int max = 0;    //储存最大和。
        cout << "请输入几个整数(用空格隔开,以字符结束)" << endl;
        while(cin >> temp)
        {
            Array.push_back(temp);    //将数字进栈到Array中。
        }
        if(Array[Array.size() - 1] < 0)
        {
            max = Array[Array.size() - 1];
        }
        while(Array[Array.size() - 1] < 0)    //去除数组末尾的负数。如果全是负数,找到最大的。
        {
            if(max <= Array[Array.size() - 1])
            {
                max = Array[Array.size() - 1];
            }
            Array.pop_back();
            if(Array.size() == 0)
            {
                cout << "最大子数组和为:" << max << endl;
                return;
            }
        }
        for(int i = 0;i < Array.size();i++)
        {
            if(sum < 0)    //如果当前数组和小于零,重置sum。
            {
                sum = 0;
            }
            else
            {
                sum += Array[i];
            }
            if(sum > max)    //当前和与最大值比较。
            {
                max = sum;
            }
        }
        cout << "最大子数组和为:" << max << endl;
        vector<int>().swap(Array);    //释放vector数组。
    }

    3.结果截图

  • 相关阅读:
    flash
    应用缓存
    音频和视频
    拖拽借口
    地理定位接口
    表单元素
    jquery常见用法
    jquery ajax 模板
    Ubuntu下Lucene环境搭配
    小絮叨
  • 原文地址:https://www.cnblogs.com/shenshenxin/p/5369145.html
Copyright © 2011-2022 走看看