试题编号: | 201604-1 |
试题名称: | 折点计数 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: | 问题描述 给定n个整数表示一个商店连续n天的销售量。如果某天之前销售量在增长,而后一天销售量减少,则称这一天为折点,反过来如果之前销售量减少而后一天销售量增长,也称这一天为折点。其他的天都不是折点。如下图中,第3天和第6天是折点。 输入格式 输入的第一行包含一个整数n。 输出格式 输出一个整数,表示折点出现的数量。 样例输入 7 样例输出 2 评测用例规模与约定 所有评测用例满足:1 ≤ n ≤ 1000,每天的销售量是不超过10000的非负整数。 |
问题链接:CCF201604-1 折点计数
问题分析
根据题意可得:折点即为两边都比他大或者两边都比他小的点,同时第一个点和最后一个点不是折点。
满分代码
n=int(input())
a=input().split()
for i in range(n):
a[i]=int(a[i])
#记录折点数量
count=0
#只有一个或两个点的话,没有折点
if n==1 or n==2:
print(0)
else:
for i in range(1,n-1):
#比两边都大或者比两边都小
if (a[i]>a[i-1] and a[i]>a[i+1])or(a[i]<a[i-1] and a[i]<a[i+1]):
count+=1
print(count)