class : defsumEvenAfterQueries(self, A: List[int], queries: List[List[int]]) -> List[int]: ans = [] for query in queries: val, ind = query A[ind] += val temp = 0 for a in A: if (a % 2 == 0): temp += a ans.append(temp) return ans
# 改进后(better,but still TLE) class : defsumEvenAfterQueries(self, A: List[int], queries: List[List[int]]) -> List[int]: ans = [] even_id = [] temp = 0 for ind, a in enumerate(A): if (a % 2 == 0): even_id.append(ind) temp += a for query in queries: val, ind = query A[ind] += val if (ind in even_id and A[ind] % 2 == 0): temp += val elif (ind in even_id and A[ind] % 2 != 0): temp -= (A[ind] - val) even_id.remove(ind) elif (ind notin even_id and A[ind] % 2 == 0): temp += A[ind] even_id.append(ind) else: pass ans.append(temp) return ans
# 官方解法 class : defsumEvenAfterQueries(self, A: List[int], queries: List[List[int]]) -> List[int]: S = sum(x for x in A if x % 2 == 0) # 这里和我想法一致 ans = []
for x, k in queries: if A[k] % 2 == 0: S -= A[k] A[k] += x if A[k] % 2 == 0: S += A[k] # 这里我考虑了所有情况,但其实没有必要,因此TLE ans.append(S)
近期评论