A라는 정수 배열과 배열 쿼리가 있다고 가정합니다. i 번째 쿼리 값 =쿼리[i][0] 및 인덱스 =쿼리[i][1]의 경우 A[인덱스]에 값을 추가합니다. 그러면 i번째 질의의 답은 A의 짝수 값의 합이다. 우리는 모든 질의에 대한 답을 찾아야 한다. i번째 쿼리에 대한 답변으로 answer[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라는 배열을 정의합니다.
- 합계 :=0
- A
- 의 각 요소 i에 대해
- i가 짝수이면 sum :=sum + i
- 쿼리의 각 쿼리 i에 대해 −
- 인덱스 :=i[1]
- val :=i[0]
- A[index]가 짝수이면 sum :=sum – A[index]
- A[색인] :=A[색인] + 값
- A[index]가 짝수이면 sum :=sum + A[index]
- 합계가 결과에 추가됨
- 반환 결과
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
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]