华为机试HJ97记负均正
题目:
想法:
遍历输入的列表,记录所有负数的个数,记录所有正数的个数,并累加所有正数,最终获得所有负数的个数和正数的平均值
input_number = input()
input_number_list = input().split(" ")
count_p = 0
count_m = 0
number = 0
for i in input_number_list:
if int(i) < 0:
count_m += 1
elif int(i) > 0:
number += int(i)
count_p += 1
if number == 0:
result = 0
else:
result = number/count_p
print(f"{count_m} {result:0.1f}")
因为遍历了整个列表,因此时间复杂度为
O
(
n
)
O(n)
O(n)。
因为使用了几个额外的记录,因此空间复杂度为
O
(
1
)
O(1)
O(1)。