小学生又双叒叕来写题解啦!
翻了一下大家的思路,都用了数组,其实根本不用,可以一边读入一边判断。
由于只需考虑前后两个数,所以只用两个变量就能实现滚动数组。
若前数大于后数,由于前数已经执行过操作,而后数无法改变大小关系,因此直接爆掉。
若前数等于后数,再改变后数时便不符合要求,所以什么都不做。
若前数小于后数,根据贪心的思路,直接给后数减一比什么都不做好。
送上满分代码:
#include <iostream>
#include <cstdio>
#define Error {printf("No\n"); return 0;}
using namespace std;
int main()
{
int n, now, last;
scanf("%d", &n);
scanf("%d", &now);
for (int i = 2; i <= n; i++)
{
last = now;
scanf("%d", &now);
if (last < now) now--;
else if (last > now) Error
}
printf("Yes\n"); //千万别忘了换行。
return 0;
}
首发:2022-02-03 17:18:37
标签:int,题解,前数,printf,后数,AT4894,now From: https://www.cnblogs.com/liangbowen/p/16622778.html