📅  最后修改于: 2023-12-03 14:57:30.983000             🧑  作者: Mango
编写一个函数,计算一个数组中数字与数字总和之差大于特定值的数字。
def calculate_diff(arr: List[int], diff_val: int) -> List[int]:
arr
:一个由整数组成的数组,长度在1到10 ^ 5之间。diff_val
:特定值,整数类型。assert calculate_diff([1,2,3,4,5], 2) == [4,5]
assert calculate_diff([2,3,4,5], 2) == [4,5]
assert calculate_diff([1,2,3,4,5], 20) == []
arr_sum
。diff
,如果 diff
大于特定值 diff_val
,则将这个数字添加到结果数组中。from typing import List
def calculate_diff(arr: List[int], diff_val: int) -> List[int]:
arr_sum = sum(arr)
res = []
for num in arr:
diff = abs(arr_sum - num*len(arr)) # 计算数字与数字总和之差
if diff > diff_val:
res.append(num)
return res
解题说明:
以上面代码为例,arr_sum - num*len(arr)
的意思是数字总和 arr_sum
减去所有数字之和,即为去掉当前数字后的数字总和,差值即为此数字与数字总和之差 diff
。注意,因为我们并不知道当前数字是在数组中出现的几次,所以需要将数字的总和 arr_sum
减去当前数字的数量 num*len(arr)
。最后返回结果数组 res
即可。