LeetCode 985 查詢後的偶數和

2021-10-01 06:06:06 字數 1579 閱讀 1496

給出乙個整數陣列 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。

思路:先把a中偶數進行求和,然後對應著queries的index與val,去a中查詢,需要分a中找到的val 與queries中的val的型別:偶數+偶數,偶數+奇數,奇數+偶數,奇數+奇數,的情況。且奇數的時候,需要注意-3%2=-1,所以加上abs().a偶數+queries偶數,sum+=queries.val,a.val += queries.val;

a奇數+queries奇數,sum+=queries.val, sum += a.val,a.val += queries.val;

a奇數+queries偶數,sum 不變,a.val + queries.val;

a偶數+queries奇數,sum -= a.val, a.val + queries.val;

時間複雜度o(n), 空間複雜度o(n).

class solution 

else if(abs(a[index] % 2) == 1 && abs(val % 2) == 1) // 奇數+奇數

else if(a[index] % 2 == 0 && abs(val % 2) == 1) // 偶數+奇數

else

}return res;

}int sum(vectora)

return result;}};

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 開始...