• 算法入门经典-第七章 例题7-2最大乘积


    最大乘积

    输入n个元素组成的序列s,你需要找出一个乘积最大的连续子序列。如果这个最大的成绩不是正数,应输入-1(表示无解)。输入0结束输入。1<=n<=18,-10<=Si<=10。

    样例输入:

    3

    2 4 -3

    样例输出:

    8

    20

    #include<iostream>
    #include<vector>
    using namespace std;
    int main()
    {
        int n,m;
        vector<int> ivec;
        while(cin>>n)
        {
            if(n==0) break;
            for(int i=0; i<n; i++)
            {
                cin>>m;
                ivec.push_back(m);
            }
            long long max=-1;
            long long tem=1;
            for(vector<int>::iterator iter1=ivec.begin(); iter1<ivec.end(); iter1++)
                for(vector<int>::iterator iter2=ivec.begin(); iter2<ivec.end(); iter2++)
                {
                    for(vector<int>::iterator iter=iter1; iter<=iter2; iter++)
                    {
                        tem=tem*(*iter);
                        if(tem>max)
                            max=tem;
                    }
                    tem=1;
                }
            cout<<max<<endl;
            ivec.clear();
        }
        return 0;
    }

    分析:连续子序列有两个要素:起点和终点,因此只需枚举起点和终点即可。

  • 相关阅读:
    单例模型
    数据库7 索引
    数据库6.高级
    数据库5 不想改
    绑定方法与非绑定方法 反射 内置方法
    组合 封装 多态
    面向对象之继承
    面向过程编程
    logging hashlib 模块
    pickle json xml shelve configparser模块
  • 原文地址:https://www.cnblogs.com/is-Tina/p/7471504.html
Copyright © 2020-2023  润新知