题解 | 左侧严格小于计数

左侧严格小于计数

https://www.nowcoder.com/practice/c5922c6cdd1445749bd42f586c422435

#include <stdio.h>
int count(int c[],int t)
{
    int count=0;
    for(int i=0;i<t;i++)
    {
        if(c[i]<c[t])
        {
            count++;
        }
    }
    return count;
}
int main() 
{
    int n;
    scanf("%d",&n);
    int a[n],b[n];
    scanf("%d",&a[0]);
    int min=a[0],max=a[0];
    b[0]=0;
    for(int i=1;i<n;i++)
    {
        scanf("%d",&a[i]);
        if(a[i]>max)
        {
            b[i]=i;
            max=a[i];
        }
        else if(a[i]<min)
        {
            b[i]=0;
            min=a[i];
        }
        else 
        {
            b[i]=count(a,i);
        }
    }
    for(int i=0;i<n;i++)
    {
        printf("%d ",b[i]);
    }
    return 0;
}

根据分析发现所有可能有三种情况:

①输入值为最小值,这时候小于该输入值的个数为零;

②输入值为最大值,这时候小于该输入值的个位数为该元素对应的数组下标;

③输入值在最大值和最小值之间,这个时候需要来一个函数来确定个数;即判断数组中小于该元素的个数,用for循环遍历即可。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务