📅  最后修改于: 2023-12-03 15:07:03.171000             🧑  作者: Mango
给定一个数组,统计出所有子数组中元素的总和。
arr = [1, 2, 3]
1 + 2 = 3
1 + 2 + 3 = 6
2 + 3 = 5
结果为 3 + 6 + 5 = 14
可以通过双重循环来遍历每个子数组,并计算子数组的和。具体实现如下:
def element_count(arr):
count = 0
for i in range(len(arr)):
for j in range(i, len(arr)):
count += sum(arr[i:j+1])
return count
上述代码中,len(arr)
表示数组 arr 的长度。range(len(arr))
表示循环数组 arr 中的每个元素,而 range(i, len(arr))
表示从当前元素开始循环到数组的末尾元素。在循环中,使用 sum(arr[i:j+1])
来计算子数组的和,并将其累加到 count
变量中。
通过双重循环遍历每个子数组,时间复杂度为 $O(n^2)$。
除了保存输入数组 arr 以外,没有额外的空间使用,因此空间复杂度为 $O(1)$。
元素计数是一道简单的题目,通过双重循环可以轻松地解决。在实际工作中,需要重视时间复杂度的影响,避免出现效率低下的代码。