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;
    }
  • 相关阅读:
    Oracle 基本命令
    一个完整的创建用户,创建表空间,授权建表过程
    jQueryMobile之Popup
    data-theme 几种值的样式
    jQueryMobile之listview
    jQueryMobile之弹出对话框
    android EditText内嵌图片
    css 盒子模型
    kms可用激活服务器地址|kms可用激活服务器分享
    本地配置DNS服务器(MAC版)
  • 原文地址:https://www.cnblogs.com/fickleness/p/3103296.html
Copyright © 2011-2022 走看看