[Swift Weekly Contest 122]LeetCode985. 查詢後的偶數和 | Sum of Even Numbers After Queries
We have an array A
of integers, and an array queries
of queries.
For the i
-th query val = queries[i][0], index = queries[i][1]
, we add val to A[index]
. Then, the answer to the i
-th query is the sum of the even values of A
.
(Here, the given index = queries[i][1]
is a 0-based index, and each query permanently modifies the array A
Return the answer to all queries. Your answer
array should have answer[i]
as the answer to the i
-th query.
Example 1:
Input: A = [1,2,3,4], queries = [[1,0],[-3,1],[-4,0],[2,3]]
Output: [8,6,2,4]
Explanation:
At the beginning, the array is [1,2,3,4].
After adding 1 to A[0], the array is [2,2,3,4], and the sum of even values is 2 + 2 + 4 = 8.
After adding -3 to A[1], the array is [2,-1,3,4], and the sum of even values is 2 + 4 = 6.
After adding -4 to A[0], the array is [-2,-1,3,4], and the sum of even values is -2 + 4 = 2.
After adding 2 to A[3], the array is [-2,-1,3,6], and the sum of even values is -2 + 6 = 4.
Note:
1 <= A.length <= 10000
-10000 <= A[i] <= 10000
1 <= queries.length <= 10000
-10000 <= queries[i][0] <= 10000
0 <= queries[i][1] < A.length
給出一個整數數組 A
和一個查詢數組 queries
。
對於第 i
次查詢,有 val = queries[i][0], index = queries[i][1]
,我們會把 val
加到 A[index]
上。然後,第 i
次查詢的答案是 A
中偶數值的和。
(此處給定的 index = queries[i][1]
A
。)
返回所有查詢的答案。你的答案應當以數組 answer
給出,answer[i]
為第 i
次查詢的答案。
示例:
輸入:A = [1,2,3,4], queries = [[1,0],[-3,1],[-4,0],[2,3]] 輸出:[8,6,2,4] 解釋: 開始時,數組為 [1,2,3,4]。 將 1 加到 A[0] 上之後,數組為 [2,2,3,4],偶數值之和為 2 + 2 + 4 = 8。 將 -3 加到 A[1] 上之後,數組為 [2,-1,3,4],偶數值之和為 2 + 4 = 6。 將 -4 加到 A[0] 上之後,數組為 [-2,-1,3,4],偶數值之和為 -2 + 4 = 2。 將 2 加到 A[3] 上之後,數組為 [-2,-1,3,6],偶數值之和為 -2 + 6 = 4。
提示:
1 <= A.length <= 10000
-10000 <= A[i] <= 10000
1 <= queries.length <= 10000
-10000 <= queries[i][0] <= 10000
0 <= queries[i][1] < A.length
772 ms
1 class Solution { 2 func sumEvenAfterQueries(_ A: [Int], _ queries: [[Int]]) -> [Int] { 3 var A = A 4 var s:Int = 0 5 for v in A 6 { 7 if v % 2 == 0 8 { 9 s += v 10 } 11 } 12 var q:Int = queries.count 13 var ret:[Int] = [Int](repeating:0,count:q) 14 for i in 0..<q 15 { 16 var d:Int = queries[i][0] 17 var pos:Int = queries[i][1] 18 if A[pos] % 2 == 0 19 { 20 s -= A[pos] 21 } 22 A[pos] += d 23 if A[pos] % 2 == 0 24 { 25 s += A[pos] 26 } 27 ret[i] = s 28 } 29 return ret 30 } 31 }
[Swift Weekly Contest 122]LeetCode985. 查詢後的偶數和 | Sum of Even Numbers After Queries