首页 > 试题广场 >

枪打出头鸟

[编程题]枪打出头鸟
  • 热度指数:5957 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
现在有n个人站成一列,第i个人的身高为

他们人手一把玩具枪,并且他们喜欢把枪举在头顶上。
每一次练习射击,他们都会朝正前方发射一发水弹。
这个时候,第i个人射击的水弹,就会击中在他前面第一个比他高的人。
牛牛认为这样的练习十分的荒唐,完全就是对长得高的人的伤害。
于是它定义了一个荒唐度,初始为0。
对于第i个人,如中他击中了第j个人,则荒唐度加j,如果没有击中任何人,则荒唐度加0.
牛牛想问你,你能计算出荒唐度是多少吗?

示例1

输入

5,[1,2,3,4,5]

输出

0

说明

没有一个人击中任何一个人 
示例2

输入

5,[5,4,3,2,1]

输出

10

说明

第二个人击中第一个人,第三个人击中第二个人,第四个人击中第三个人,第五个人击中第四个人; 1+2+3+4=10 

备注:
一个整数n()
一个数组a()
a下标从0开始,
long long solve(int n, int* a, int aLen ) {
    // write code here
    long long int sum=0;//荒唐度
    if(n>1)
  {
       for(int j=1;j<n;j++)
      {
        for(int i=j-1;i>=0;i--)
        {
            if(a[i]>a[j])
            {
                sum+=i+1;
                break;
            }    
        }
       }
        return sum;
      
  }
    else
        return NULL;
}
发表于 2022-05-18 22:37:45 回复(0)