思路:题目要求是最少需要的天数,第一想法是贪心算法(也就是每次的区间总想着取最长的)
对于题目给出的例子 4 1 8 2 5
我们仔细考虑一下 :① 3 0 7 1 4 ② 3 0 6 0 3
结果就是(4-1) + (8-2) + 5
特殊情况就是最后一个数,他一定是自身的大小,即最后加的结果都是他自身。
#include<iostream>
#include<algorithm>
using namespace std;
int main() {
int n, s = 0;
cin >> n;
int* a = new int[n];
for (int i = 0; i < n; i++)
cin >> a[i];
for (int i = 0; i < n - 1; i++)
s += max(0, a[i] - a[i + 1]);
cout << s + a[n - 1] << endl;
delete[] a;
system("pause");
return 0;
}