📅  最后修改于: 2023-12-03 15:26:10.943000             🧑  作者: Mango
在一些计算程序和算法中,我们常常需要统计数组中以特定数字结尾的数字的个数。这个问题看似简单,但是在大规模数据处理中,往往需要高效的算法来解决。
我们可以使用循环遍历数组,对每个数字分别取其个位数,判断是否等于目标数字。如果相等,则我们增加计数器,表示找到了一个以目标数字结尾的数字。
def count_number_end_with_n(arr: List[int], n: int) -> int:
count = 0
for num in arr:
if num % 10 == n:
count += 1
return count
这个函数接受两个参数,一个整数数组 arr
和一个整数 n
。它返回数组中以数字 n
结尾的数字的数量。
我们可以通过以下代码来测试这个函数:
print(count_number_end_with_n([123, 45, 6789, 90, 12], 5))
输出结果应该是 2
,因为数组中有两个以数字 5
结尾的数字 45
和 6789
。
这个算法的时间复杂度是 $O(n)$,其中 $n$ 是数组的长度。它需要对数组中的每个数字都执行一次取模操作和比较操作,所以它的运行时间与数组大小成正比。这个算法的空间复杂度是 $O(1)$,因为我们只需要一个计数器来保存结果。
本文介绍了一个简单的算法来统计数组中以目标数字结尾的数字的数量。这个算法的时间复杂度是 $O(n)$,它可以在大多数情况下得到很好的性能表现。同时,我们也介绍了 Python 代码实现和一些问题的解决方案。