解题思路:
建立两层循环。第一层循环为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 人评分
小九九 (C语言代码)浏览:597 |
C语言程序设计教程(第三版)课后习题6.5 (C++代码)浏览:730 |
C语言训练-最大数问题 (C语言代码).........关于-1浏览:762 |
C语言训练-求s=a+aa+aaa+aaaa+aa...a的值 (C++代码)(手动优化一下计算)浏览:1365 |
高精度加法 (C++代码)(大数加法)浏览:1008 |
C语言训练-字符串正反连接 (C语言代码)浏览:664 |
C语言训练-斐波纳契数列 (C语言代码)浏览:1271 |
淘淘的名单 (C语言代码)浏览:1167 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:537 |
简单的a+b (C语言代码)浏览:531 |