[R13A] 连续下降
- 难度 入门
- 时限 1s
- 空限 512m
- 模拟
数据规模:,。
思路
扫描一遍数组,检查每个 ()是否满足 ,满足则计数加一。
复杂度:时间 ,空间 。
仓颉实现
import std.env.*
import std.convert.*
main(): Int64 {
let reader = getStdIn()
let n = Int64.parse(reader.readln().getOrThrow())
let a = reader.readln().getOrThrow().split(" ", removeEmpty: true).map({ p => Int64.parse(p) })
var ans: Int64 = 0
for (i in 0..(n - 2)) {
if (a[i] > a[i + 1] && a[i + 1] > a[i + 2]) {
ans = ans + 1
}
}
println(ans)
return 0
}
要点:
- 数组下标从 0 开始,条件 对应
0..(n - 2),区间不含右端点,恰好枚举到 。 - 两个不等号连写拆成两个独立的比较,
a[i] > a[i + 1] && a[i + 1] > a[i + 2]清晰且不会歧义。