#include <iostream>
#include<algorithm>
#include <iomanip>
using namespace std;
int Rd[100010];
//跳跃函数,返回第一个正数
//现在是返回的第一个为0 的下标,不是此方法的目的
int jump(int n) {
int flag = 0;
for (int i = 0; i < n; i++) {
if (Rd[i])
return i;
}
return n;//结束后返回n
}
int main() {
ios::sync_with_stdio(false);
int n, i, j;
cin >> n;
for (i = 0; i < n; i++) {
cin >> Rd[i];
}
int Day_num = 0;
while (jump(n) != n) {
j = jump(n);
for (i = j; i < n; i++) {
if (Rd[i]) {
Rd[i]--;
} else {
break;
}
}
Day_num++;
}
cout << Day_num;
return 0;
}
思路就是从左往右遍历,首先找到有深度的坑,每次循环(每天)都从这开始往后找,只要有深度就填,直到碰到深度为0的坑为止。
但是最后三个点TLE了