
Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
History is littered with hundreds of conflicts over the future of a community, group, location or business that were "resolved" when one of the parties stepped ahead and destroyed what was there. With the original point of contention destroyed, the debates would fall to the wayside. Archive Team believes that by duplicated condemned data, the conversation and debate can continue, as well as the richness and insight gained by keeping the materials. Our projects have ranged in size from a single volunteer downloading the data to a small-but-critical site, to over 100 volunteers stepping forward to acquire terabytes of user-created data to save for future generations.
The main site for Archive Team is at archiveteam.org and contains up to the date information on various projects, manifestos, plans and walkthroughs.
This collection contains the output of many Archive Team projects, both ongoing and completed. Thanks to the generous providing of disk space by the Internet Archive, multi-terabyte datasets can be made available, as well as in use by the Wayback Machine, providing a path back to lost websites and work.
Our collection has grown to the point of having sub-collections for the type of data we acquire. If you are seeking to browse the contents of these collections, the Wayback Machine is the best first stop. Otherwise, you are free to dig into the stacks to see what you may find.
The Archive Team Panic Downloads are full pulldowns of currently extant websites, meant to serve as emergency backups for needed sites that are in danger of closing, or which will be missed dearly if suddenly lost due to hard drive crashes or server failures.
We have an array
A
of integers, and an arrayqueries
of queries.For the
i
-th queryval = queries[i][0], index = queries[i][1]
, we add val toA[index]
. Then, the answer to thei
-th query is the sum of the even values ofA
.(Here, the given
index = queries[i][1]
is a 0-based index, and each query permanently modifies the arrayA
.)Return the answer to all queries. Your
answer
array should haveanswer[i]
as the answer to thei
-th query.Example 1:
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,说每次可以给数组某个位置上的数字加上一个值,每次操作后让返回当前数组中的偶数数之和。通过题目中的例子可以发现,加上的数字可能为负值,负偶数也是偶数。每次修改一个值后都要返回偶数之和,肯定不能每次都遍历一遍数组求偶数和,太不高效了,其实每次只修改了一个数字,这个数字对整个数组的偶数和的影响有限,可以分情况来讨论一下。假如修改之前,该数字就是偶数,修改后若变为奇数,则损失了原来的偶数值,若修改后还是偶数,则相当于先损失了原来的偶数,又加上了新的偶数。若修改之前,该数字是奇数,修改后若还是奇数,则什么也不影响,若修改后变为了偶数,则相当于加上了这个偶数。所以归纳起来就是,先判断修改前的数字,若是偶数,则减去这个偶数,再判断修改后的数字,若是偶数,则加上这个偶数。这样的话只要最开始遍历一遍数组,求出所有偶数之和,之后修改数字时只要按上面的步骤就可以快速获得偶数之和了,参见代码如下:
Github 同步地址:
#985
参考资料:
https://leetcode.com/problems/sum-of-even-numbers-after-queries/
https://leetcode.com/problems/sum-of-even-numbers-after-queries/discuss/231098/C%2B%2B-O(n)-track-even-sum
https://leetcode.com/problems/sum-of-even-numbers-after-queries/discuss/231099/JavaPython-3-odd-even-analysis-time-O(max(m-n))
LeetCode All in One 题目讲解汇总(持续更新中...)
The text was updated successfully, but these errors were encountered: