洛谷题单入门4-P1428 小鱼比可爱-python

部署运行你感兴趣的模型镜像

输入格式

第一行输入一个正整数 n,表示鱼的数目。

第二行内输入 n 个正整数,用空格间隔,依次表示从左到右每只小鱼的可爱程度 a-下标i​。

输出格式

一行,输出 n 个整数,用空格间隔,依次表示每只小鱼眼中有多少只鱼不如自己可爱。

方法时间复杂度适用场景
暴力法(双重循环)O(n²)通用场景,n 较小(如 n ≤ 1e4)
前缀和计数法O(n * k)数值范围小(如 k ≤ 100)

暴力法

def oi_input():
    n = int(input())
    a = list(map(int, input().split()))
    return n, a

def test():
    n = 6
    a = [4, 3, 0, 5, 1, 2]
    return n, a

def solution(n, a):
    res = [] # 用于存储每个的情况

    for i in range(n):
        count = 0
        for j in range(i):
            if a[j] < a[i]:
                count += 1
        res.append(str(count))

    print(' '.join(res))# 空格分割的拼接

if __name__ == '__main__':
    n, a = oi_input()
    # n, a = test()
    solution(n, a)

前缀和计数法

def oi_input():
    n = int(input())
    a = list(map(int, input().split()))
    return n, a

def test():
    n = 6
    a = [4, 3, 0, 5, 1, 2]
    return n, a

def solution(n, a):
    '''对于遍历,长度就没用上了'''
    count = [0] * 11  # 数值范围0~10
    res = [] # 用于存储每个的情况

    for num in a:
        '''统计当前元素左边比它小的总数'''
        total = sum(count[:num])
        res.append(str(total))

        count[num] += 1 # 更新计数数组

    print(' '.join(res)) # 空格分割的拼接

if __name__ == '__main__':
    n, a = oi_input()
    # n, a = test()
    solution(n, a)

 

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值