zoukankan      html  css  js  c++  java
  • 面试题:数组后面的数减去前面的数的差最大

    #include <cstdlib>
    #include <iostream>
    #include<vector>
    #include <algorithm>
    
    
    
    using namespace std;
    
    //找出vector中后面元素和前面元素的最大差值, 
    //遍历的N2复杂度的就不考虑了
    
    //容器从两个元素开始,以此往后取第三个、第四个……元素 
    
    //构造最大差值元素 
    int max_diff(vector<int>& arr)
    {
        if(arr.size()<=1)
        cout<<"容器长度必须是大于2"<<endl;
        
        //容器元素大于等于二个时 
        if(arr.size()>1)
        {
        //先定义最大差值,留着更新 
        int MAX=arr[1]-arr[0];
        //前两个元素的 最小值 
        int MIN=min(arr[0],arr[1]);
        //从第三个元素开始 
        for(vector<int>:: iterator it=arr.begin()+2;it!=arr.end();++it)
        {
                          //若这个元素和前面元素的差值比max大,更新max 
                        if(*it-MIN>MAX)
                       { MAX=*it-MIN;}
                        //若这个元素比前面容器的元素min小,更新min 
                        if(*it<MIN)
                        {MIN=*it;}
                        
        }
        cout<<"最大差值是:"<<MAX<<endl; 
        } 
    
    
    }
    
    int main(int argc, char *argv[])
    {
        //建立容器,并加入数据 
        vector<int> arr;
        arr.push_back(1);
        arr.push_back(0);
        arr.push_back(12);
        arr.push_back(10);
        arr.push_back(6);
        arr.push_back(9);
        //输出容器中的元素 
        for(vector<int> ::iterator it=arr.begin();it!=arr.end();++it)
        {
                        cout<<*it<<" ";
                        if(it==arr.end()-1)
                        cout<<""<<endl;
                        }
        //调用函数 
        max_diff(arr);
        system("PAUSE");
        return EXIT_SUCCESS;
    }
  • 相关阅读:
    Designing With Web Standard(一)
    再听姜育恒
    终于找到Effective C Sharp电子版了
    继续下一个题目
    想做就做,要做得漂亮
    空悲还是空杯
    整理,中庸
    分布式系统设计随想
    日志log4
    log4net更换目录
  • 原文地址:https://www.cnblogs.com/fickleness/p/3103296.html
Copyright © 2011-2022 走看看