数组各元素乘其余元素之和的累加值计算 求对应实现代码
数组运算逻辑实现方案
需求说明
给定数组,按顺序取每个元素,乘以数组中其余所有元素的总和,再将所有乘积相加得到最终结果。
示例输入:[4, 3, 5, 1],示例输出:118
实现思路
1. 直观暴力实现
逐一遍历数组元素,每次单独计算除当前元素外的其余元素总和,相乘后累加即可,逻辑简单易懂,适合新手快速理解需求。
代码示例(Python):
def calc_array_value(nums): total = 0 for idx, current in enumerate(nums): # 计算除当前元素外的其余元素和 other_sum = sum(nums[:idx] + nums[idx+1:]) total += current * other_sum return total # 测试示例 print(calc_array_value([4,3,5,1])) # 输出 118
2. 数学优化实现
通过公式推导可以大幅降低运算复杂度:
设数组总和为sum_all,每个元素为num_i,其余元素和为sum_all - num_i,最终结果为所有num_i * (sum_all - num_i)的和,展开后可得:
最终结果 = sum_all * sum_all - 所有元素的平方和
仅需遍历数组1-2次即可得到结果,时间复杂度为O(n),适合处理长数组场景。
代码示例(Python):
def calc_array_value_optimized(nums): sum_all = sum(nums) square_sum = sum(x * x for x in nums) return sum_all * sum_all - square_sum # 测试示例 print(calc_array_value_optimized([4,3,5,1])) # 输出 118
内容的提问来源于stack exchange,提问作者debab19
相关产品推荐
相关产品推荐

