0
点赞
收藏
分享

微信扫一扫

C++吃早饭排队问题

吃早饭
同学们每天早上都会晨练,但是每次运动后都会很饿,于是他们回去吃早饭,信奥班的同学们当然很有素质,他们都遵守规矩排队。每个同学都面向窗口,一共有 N 个同学。现在你想知道每个同学能够看到的前面的同学的个数和是多少。
定义一个同学能够看到的人为在他前面且身高严格低于他的人,并且他的视线会被在他前面第一个身高大于等于他的人挡住。也就是说无论如何也无法看到再前面的人了。

输入:N+1 行
第一行一个正整数N表示同学的个数。
以下 N 行分别表示从后到前(窗口)同学的身高 a.
输出:一行一个整数,表示所有同学能看到的人的个数和。

样例:

data.in
6
10 3 7 4 12 2

data.out
5

数据范围

30% 1<=N<=100,
100% 1<=N<=80000,1<=a<=1000000000.

Code:
时间复杂度比较高

void myfun(vector<int>&num)
{
int count = 0;
for (int i=0;i<num.size();i++)
{
int temp = num[i];
for (int j=i-1;j>=0;j--)
{

if (num[j] < temp)
{
count++;
}
else
break;
}
}
cout << count << endl;
}


举报

相关推荐

c++吃西瓜

C语言 猴子吃桃问题

JS排队问题

【C语言编程】猴子吃桃问题。

猴子吃桃子问题

猴子吃桃问题

【51nod】2353 排队问题

C/C++ 装载问题

0 条评论