Python 中查询后偶数的总和
pythonserver side programmingprogramming更新于 2025/11/2 7:08:17
假设我们有一个名为 A 的整数数组和一个查询数组。对于第 i 个查询值 = 查询[i][0] 和索引 = 查询[i][1],我们将值添加到 A[index]。然后,第 i 个查询的答案是 A 偶数值的总和。我们必须找到所有查询的答案。我们将找到一个数组,该数组应该将 answer[i] 作为第 i 个查询的答案。因此,如果数组为 [1,2,3,4],查询数组为 [[1,0],[-3,1],[-4,0],[2,3]],则答案数组将为 [8,6,2,4]。因此,首先数组是 [1,2,3,4],然后在第一个查询之后,将 A[0] 加 1,则数组将为 [2,2,3,4],偶数之和为 2 + 2 + 4 = 8。对于第二个查询,它将在 A[1] 上加 -3,则数组将为 [2,-1,3,4],因此偶数之和为 2 + 4 = 6。这样我们得到的数组是 [8,6,2,4]
为了解决这个问题,我们将遵循以下步骤 −
- 定义一个名为 res 的数组来存储结果
- sum := 0
- 对于 A 中的每个元素 i
- 如果 i 是偶数,则 sum := sum + i
- 对于查询中的每个查询 i −
- index := i[1]
- val := i[0]
- 如果 A[index] 为偶数,则 sum := sum – A[index]
- A[index] := A[index] + val
- 如果 A[index] 为偶数,则 sum := sum + A[index]
- sum 附加到 res
- 返回 res
示例
让我们看看下面的实现以便更好地理解 −
class Solution(object): def sumEvenAfterQueries(self, A, queries): result = [] sum = 0 for i in A: if i%2==0: sum+=i for i in queries: index = i[1] val = i[0] if A[index] % 2==0: sum-=A[index] A[index]+=val if A[index]%2==0: sum+=A[index] result.append(sum) return result ob1 = Solution() print(ob1.sumEvenAfterQueries([1,2,3,4], [[1,0],[-3,1],[-4,0],[2,3]]))
输入
[1,2,3,4] [[1,0],[-3,1],[-4,0],[2,3]]
输出
[8,6,2,4]
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

