• 求数组中两个元素最大差值


    一个整数数组a[n],在a[n]中找两个数字,使得下标大的数字减去下表小的数字所得的差值最大,即:
    在a[n]中找 a[i] 和 a[j] ,使得 a[i] - a[j] 的值最大,并且 i > j 。 

    寻求O(n)的解法

     1 #include<iostream>//max{d[i] - d[j]} 且 i > j
     2 #include<vector>
     3 using namespace std;
     4 int Find_max1(vector<int> &a)
     5 {
     6     int len=nums.size();
     7     if(len==0||len==1) return false;
     8     int minleft=a[0];
     9     int maxdiff=a[1]-a[0];
    10     for(int i=2;i<len;i++){
    11         if(a[i-1]<minleft) minleft=a[i-1];
    12         if(a[i]-minleft>maxdiff) maxdiff=a[i]-minleft;
         return maxdiff;
    13 } 14

      如果要求i<j的话:

    #include <iostream>//max{d[i] - d[j]} 且 i<j
    #include <vector>
    using namespace std;
    int Find_max2(vector<int> &a)
    {
        int len=nums.size();
        if(len==0||len==1) return false;
        int maxleft=a[0];
        int maxdiff=a[0]-a[1];
        for(int i=2;i<len;i++){
            if(a[i-1]>maxleft) maxleft=a[i-1];
            if(maxleft-a[i]>maxdiff) maxdiff=maxleft-a[i];
        return maxdiff;
    }
  • 相关阅读:
    JQuery源码解析(十一)
    Oracle帮助类
    JQuery正则验证
    MVC的过滤器
    JQuery源码解析(十)
    JavaScript封装的几种方式
    ps小技巧
    Fragment 的用法小技巧
    onCreateOptionsMenu 和 onPrepareOptionsMenu 的区别
    Axure 注册码
  • 原文地址:https://www.cnblogs.com/wsw-seu/p/8399749.html
Copyright © 2020-2023  润新知