LeetCode 985. 查询后的偶数和
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 985. 查询后的偶数和
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. 題目
給出一個(gè)整數(shù)數(shù)組 A 和一個(gè)查詢數(shù)組 queries。
對(duì)于第 i 次查詢,有 val = queries[i][0], index = queries[i][1],我們會(huì)把 val 加到 A[index] 上。
然后,第 i 次查詢的答案是 A 中偶數(shù)值的和。
(此處給定的 index = queries[i][1] 是從 0 開始的索引,每次查詢都會(huì)永久修改數(shù)組 A。)
返回所有查詢的答案。你的答案應(yīng)當(dāng)以數(shù)組 answer 給出,answer[i] 為第 i 次查詢的答案。
示例: 輸入:A = [1,2,3,4], queries = [[1,0],[-3,1],[-4,0],[2,3]] 輸出:[8,6,2,4] 解釋: 開始時(shí),數(shù)組為 [1,2,3,4]。 將 1 加到 A[0] 上之后,數(shù)組為 [2,2,3,4],偶數(shù)值之和為 2 + 2 + 4 = 8。 將 -3 加到 A[1] 上之后,數(shù)組為 [2,-1,3,4],偶數(shù)值之和為 2 + 4 = 6。 將 -4 加到 A[0] 上之后,數(shù)組為 [-2,-1,3,4],偶數(shù)值之和為 -2 + 4 = 2。 將 2 加到 A[3] 上之后,數(shù)組為 [-2,-1,3,6],偶數(shù)值之和為 -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來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/sum-of-even-numbers-after-queries
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
2. 解題
int func(int x, int y) {if(y%2 == 0)return x+y;elsereturn x; } class Solution { public:vector<int> sumEvenAfterQueries(vector<int>& A, vector<vector<int>>& queries) {vector<int> ans;int sum = accumulate(A.begin(), A.end(),0,func);//偶數(shù)總和for(int i = 0; i < queries.size(); ++i){if((queries[i][0]+A[queries[i][1]]) % 2 == 0){if(A[queries[i][1]]%2 == 0)//是偶數(shù)直接+sum += queries[i][0];else//是奇數(shù),加完是偶數(shù),加上兩個(gè)奇數(shù)sum += queries[i][0]+A[queries[i][1]];}else//相加后是奇數(shù){if(A[queries[i][1]]%2 == 0)//原來是偶數(shù)sum -= A[queries[i][1]];//減去}A[queries[i][1]] += queries[i][0];ans.push_back(sum);}return ans;} };168 ms 28.9 MB
總結(jié)
以上是生活随笔為你收集整理的LeetCode 985. 查询后的偶数和的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 1310. 子数组异或
- 下一篇: LeetCode 536. 从字符串生成