給出乙個整數陣列 a 和乙個查詢陣列 queries。
對於第 i 次查詢,有 val = queries[i][0], index = queries[i][1],我們會把 val 加到 a[index] 上。然後,第 i 次查詢的答案是 a 中偶數值的和。
(此處給定的 index = queries[i][1] 是從 0 開始的索引,每次查詢都會永久修改陣列 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
思路:直接暴力輪詢會超時(o(n2)), 採用累加法(o(n)),記錄第一次的結果,後面的結果在第一次的基礎上累加即可:
int* sumevenafterqueries(int* a, int asize, int** queries, int queriessize, int* queriescolsize, int* returnsize) else
} else else
}a[queries[i][1]] += queries[i][0];
}*returnsize = queriessize;
return ret;
}
LeetCode985 查詢後的偶數和
給出乙個整數陣列a和乙個查詢陣列queries。對於第i次查詢,有val queries i 0 index queries i 1 我們會把val加到a index 上。然後,第i次查詢的答案是a中偶數值的和。此處給定的index queries i 1 是從 0 開始的索引,每次查詢都會永久修改...
LeetCode 985 查詢後的偶數和
鏈結 給出乙個整數陣列 a 和乙個查詢陣列 queries。對於第 i 次查詢,有 val queries i 0 index queries i 1 我們會把 val 加到 a index 上。然後,第 i 次查詢的答案是 a 中偶數值的和。返回所有查詢的答案 先執行更新陣列操作,然後對偶數求和,...
LeetCode 985 查詢後的偶數和
給出乙個整數陣列 a 和乙個查詢陣列 queries。對於第 i 次查詢,有 val queries i 0 index queries i 1 我們會把 val 加到 a index 上。然後,第 i 次查詢的答案是 a 中偶數值的和。此處給定的 index queries i 1 是從 0 開始...