最大差值(美团)

2016/05/07 C和C++基础

题目描述

有一个长为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");
}

Search

    Post Directory