题目描述
人比人,气死人;鱼比鱼,难死鱼。小鱼最近参加了一个“比可爱”比赛,比的是每只鱼的可爱程度。参赛的鱼被从左到右排成一排,头都朝向左边,然后每只鱼会得到一个整数数值,表示这只鱼的可爱程度,很显然整数越大,表示这只鱼越可爱,而且任意两只鱼的可爱程度可能一样。由于所有的鱼头都朝向左边,所以每只鱼只能看见在它左边的鱼的可爱程度,它们心里都在计算,在自己的眼力范围内有多少只鱼不如自己可爱呢。请你帮这些可爱但是鱼脑不够用的小鱼们计算一下。
输入格式
第一行输入一个正整数 nnn,表示鱼的数目。
第二行内输入 nnn 个正整数,用空格间隔,依次表示从左到右每只小鱼的可爱程度 aia_iai。
输出格式
一行,输出 nnn 个整数,用空格间隔,依次表示每只小鱼眼中有多少只鱼不如自己可爱。
输入输出样例
输入
6
4 3 0 5 1 2
输出
0 0 0 3 1 2
说明/提示
对于 100%100\%100% 的数据,1≤n≤1001 \leq n\leq 1001≤n≤100,0≤ai≤100 \leq a_i \leq 100≤ai≤10。
方式-暴力
代码
def oi_input():
num = int(input())
nums = list(map(int, input().split()))
return num, nums
def oi_test():
return 6, [4, 3, 0, 5, 1, 2]
def solution(num, nums):
'''暴力'''
res = []
for i in range(num):
count = 0
for j in range(i):
if nums[j] < nums[i]:
count += 1
res.append(str(count))
print(' '.join(res))
if __name__ == '__main__':
num, nums = oi_test()
#num, nums = oi_input()
solution(num, nums)
流程图
方式-计数数组
代码
def oi_input():
num = int(input())
nums = list(map(int, input().split()))
return num, nums
def oi_test():
return 6, [4, 3, 0, 5, 1, 2]
def solution(num, nums):
'''计数数组'''
count = [0] * 11 # 数值范围0~10
res = [] # 用于存储每个的情况
for n in nums:
'''统计当前元素左边比它小的总数'''
res.append(str(sum(count[:n])))
count[n] += 1 # 更新计数数组
print(' '.join(res)) # 空格分割的拼接
if __name__ == '__main__':
num, nums = oi_test()
#num, nums = oi_input()
solution(num, nums)
913

被折叠的 条评论
为什么被折叠?



