最大的差值
这是数据结构老师布置的第6道题,题目要求如下:
显然这是一个O(n^n)的算法,下面是我自己实现的O(n)的算法,和leetcode上卖股票的题相类似。
代码实现:
#include"pch.h"
#include<iostream>
#include<vector>
#include<cmath>
#include<math.h>
#include<algorithm>
using namespace std;
int maxDifference(vector<int> a)
{
if (a.size() <= 1)
return 0;
int first = a[0];
int maxDiff = 0;
for (int i = 0; i < a.size(); i++)
{
maxDiff = max(maxDiff, (int)(fabs(a[i] - first)));
first = min(first, a[i]);
}
return maxDiff;
}
int main()
{
vector<int> input;
cout << "Enter the total number that you want to input: ";
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
int temp;
cin >> temp;
input.push_back(temp);
}
cout << "The biggest difference is " << maxDifference(input) << endl;
}
运行结果: