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