NC17361. 鹏
描述
化而为鸟,其名为鹏。鹏之背,不知其几千里也。
HtBest的小鲲长大变成了大鹏,大鹏在天际翱翔,看到了一片绵延的山脉,每座山都有自己的高度,大鹏想穿过这片山脉。由于他只能紧贴地面飞行,他想知道他一共要翻越几次大山(上升->平飞->下降,算一次,其中平飞可以没有),初始时,大鹏在山脉的左端。
输入描述
第一行一个正整数n,表示山脉被分为n段。
第二行有n个正整数ai两两之间用空格分开,ai表示山脉第i段的高度。
输出描述
一行,包含一个正整数,表示大鹏需要翻越几次大山。
示例1
输入:
3 1 2 1
输出:
1
说明:
大鹏先上升一次,再下降一次,共翻越1次。示例2
输入:
3 3 1 2
输出:
0
说明:
大鹏先下降一次,再上升一次,共翻越0次。示例3
输入:
3 1 2 3
输出:
0
说明:
大鹏只需要上升一次,不需要下降,共翻越0次。C++ 解法, 执行用时: 338ms, 内存消耗: 460K, 提交时间: 2023-08-13 11:32:28
#include<iostream> using namespace std; int main() { int n,a; cin>>n>>a; int h=a,p=0,q=0; for(int i=1;i<n;i++) { cin>>a; if(a>=h)p=1; else q+=p,p=0; h=a; } cout<<q; }
Python3 解法, 执行用时: 750ms, 内存消耗: 102468K, 提交时间: 2023-08-13 11:31:59
a=int(input()) b,c=0,list(map(int,input().split())) for i in range(1,a-1): if c[i]>c[i-1] and c[i]>c[i+1]: b+=1 print(b)