题目描述
有一个长为n的数组A,求满足0≤a≤b<n的A[b]-A[a]的最大值。 给定数组A及它的大小n,请返回最大差值。
测试样例:
[10,5],2
返回:0
程序代码
方法一:
#include <iostream>
#include <vector>
using namespace std;
int getDis(vector<int> A,int n){
vector<int> arr;
for(int i=0;i<n-1;i++){
for(int j=i+1;j<n;j++){
arr.push_back(A[j]-A[i]);
}
}
int max=0;
for(int i=0;i<arr.size();i++){
if(max<arr[i])
max=arr[i];
}
return max;
}
int main(){
vector<int> A;
int n=3;
A.push_back(10);
A.push_back(5);
A.push_back(31);
cout<<getDis(A,n)<<endl;
system("pause");
}
方法二:
#include <iostream>
#include <vector>
using namespace std;
int getDis(vector<int> A,int n){
int min=A[0];
int max=0;
for(int i=1;i<n;i++){
if(max<A[i]-min){
max=A[i]-min;
}
if(min>A[i]){
min=A[i];
}
}
return max;
}
int main(){
vector<int> A;
int n=3;
A.push_back(10);
A.push_back(5);
A.push_back(31);
cout<<getDis(A,n)<<endl;
system("pause");
}