/* 题目描述:
* 有一个长为n的数组A,求满足0≤a≤b<n的A[b]-A[a]的最大值。
* 给定数组A及它的大小n,请返回最大差值 */
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <vector>
using namespace std;
int getDis(vector<int> A, int n) {
int max = 0;
vector<int> B;
for(int i=n-1;i>=0;i--)
{
for(int j=0;j<i-1;j++) //j<i-1;而不是j<n;可降低时间、空间占用
{
int mid;
mid = A[i] - A[j];
B.push_back(mid);
}
}
for(int k=0;k<B.size();k++)
{
if(B[k]>max)
max = B[k];
}
return max;
}
int main()
{
vector<int> A;
for (int i=0;i<8;i++)
{
A.push_back(i);
}
cout<<getDis(A,8)<<endl;
return 0;
}
//牛客网的通过案例
class LongestDistance {
public:
int getDis(vector<int> A, int n) {
int max = 0;
vector<int> B;
for(int i=n-1;i>=0;i--)
{
for(int j=0;j<=i;j++)
{
int mid;
mid = A[i] - A[j];
B.push_back(mid);
}
}
for(int k=0;k<B.size();k++)
{
if(B[k]>max)
max = B[k];
}
return max;
}
};