I_love_%username%
题意
Vasya很喜欢一个coder,他喜欢看那个coder的节目,那个coder每次编程可以得到一个非负分数(不超过10000),而有两种情况能使Vasya惊讶: ·coder得到的分数完全大于过去的分数; ·coder得到的分数完全小于过去的分数。 注意:第一次得到的分数不会使人惊讶。 给定coder编程次数n,给定每次编程得到的分数,请你求出Vasya的惊讶次数。
> 简单来说就是:输入一个数,让其为这个数组中元素的个数,接着输入这个数组,除第一个数以外(因为第一个数作为初始数),去找远大于或远小于前一个数的数。然后计算有几次。
思路
- 首先要定义数与数组便于储存,再定义一个计数器sum并赋初值=0,定义最大值max=0,min=10010;for循环输入数组。
- if条件判断,要分两种情况(=1或!=1)
- 赋值和计数
坑点
- 要分两种情况(=1和!=1)
- if语句的嵌套使用,第二个if语句是最小值与最大值的判断与赋值
算法一:for循环语句和if条件判断
时间复杂度
- 输出大小: 1.83238887786865 MiB
- 编译时间: 0.44s
实现步骤
- 定义数与数组,计数器,最大值,最小值,for循环输入数组。
- if条件语句判断(分=1与!=1两种情况)
- if语句的嵌套(最大值与最小值的判断与赋值)
代码
#include<iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;
int main()
{
int n,sum=0;//sum为计数器
cin>>n;
int a[n],max=0,min=10010;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
for(int i=1;i<=n;i++)
{
if(i==1)
{
max=a[1];
min=a[1];
continue;
}
if(i>1)
{
if(a[i]>max)
{
max=a[i];
sum++;
}
if(a[i]<min)
{
min=a[i];
sum++;
}
}
}
cout<<sum;
return 0;
}
总结
有一点坑点,但是不难,挺简单的。for循环+if语句的嵌套。