LeetCode 1352. Product of the Last K Numbers(维护前缀和)
2020-05-07 04:09
946 查看
题目链接
题意:
维护一个列表,两个操作add和getnum(k),让你输出每次列表最后的k个数的和
思路:
操作很多,大概有4w个operation且k最大为4w,所以暴力查询肯定会T。
这是就需要空间换时间,O(N)O(N)O(N)空间维护一个前缀和,显然如果列表中出现0则前面的即可清0,否则继续维护,最后O(1)O(1)O(1)查询输出结果即可!
class ProductOfNumbers: def __init__(self): self._list = [1] def add(self, num: int) -> None: if not num: self._list = [1] else: self._list.append(self._list[-1] * num) return None def getProduct(self, k: int) -> int: if len(self._list) <= k: return 0 else: return self._list[-1] // self._list[- (k + 1)]Marcus_Bob 博客专家 原创文章 562获赞 339访问量 29万+ 关注 他的留言板
相关文章推荐
- LeetCode find the first/last position(java solution)
- 【leetcode】:Length of the LastWord
- Leetcode 2. Add Two Numbers The Solution of Python and Javascript
- codeforces-385C Bear and Prime Numbers(素数筛选法+维护前缀和)
- [贪心+DFS序列维护树上前缀和]2014 Multi-University Training Contest 5 - 1002 Paths on the tree
- LeetCode 304 Range Sum Query 2D - Immutable(维护二维数组的前缀和)
- LeetCode 303 Range Sum Query - Immutable(维护前缀和)
- Gym101502 A.Very Hard Question B.Linear Algebra Test (map) E.The Architect Omar(find函数) F.Building Numbers(前缀和)H.Eyad and Math(换底公式) I.Move Between Numbers(迪杰斯特拉跑最短路) J. K.Malek and Summer Semester
- LeetCode:Length of Last Word
- [LeetCode] Length of Last Word
- LeetCode: 2. Add Two Numbers 【C 解题】
- leetCode : Length of Last Word
- 菜鸟刷leetcode 2.Add Two Numbers
- Leetcode: Find the Duplicate Number
- [Codeforces Round #452 (Div. 2)] Dividing the numbers
- UVA 11481 Arrange the Numbers (容斥)
- leetcode 题目 Add Two Numbers
- [Leetcode] Bitwise AND of Numbers Range
- [leetcode][201]. Bitwise AND of Numbers Range
- LeetCode Sum Root to Leaf Numbers