解题思路:
建立两层循环。第一层循环为l,第二层循环为r。
每次更新区间[l,r]的最小值和最大值。如果(最大值-最小值)= (r-l),则连续区间数量加1。
注意事项:
参考代码:
def f(n): A = tuple(int(i) for i in input().strip().split()) ans = 0 for i in range(n): min_num = A[i] max_num = A[i] for j in range(i,n): temp = A[j] if temp > max_num: max_num = temp if temp < min_num: min_num = temp if max_num - min_num +1 == j-i+1: ans = ans+1 print(ans) if __name__ == '__main__': n = int(input()) f(n)
0.0分
0 人评分
点我有惊喜!你懂得!浏览:1330 |
C语言程序设计教程(第三版)课后习题7.2 (Java代码)浏览:686 |
C语言训练-列出最简真分数序列* (C语言代码)浏览:505 |
简单的a+b (C语言代码)浏览:542 |
C语言训练-求1+2!+3!+...+N!的和 (C语言代码)浏览:541 |
多输入输出练习1 (C语言代码)浏览:1187 |
【出圈】 (C语言代码)浏览:796 |
兰顿蚂蚁 (C++代码)浏览:1045 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:559 |
wu-淘淘的名单 (C++代码)浏览:1339 |