摘要:
题目链接 解题思路:使用set,遍历数组,如果数组中存在该数,则直接返回True,否则加入set 代码 class Solution: def containsDuplicate(self, nums: List[int]) -> bool: has = set() for num in nums: 阅读全文
摘要:
题目链接 解题思路:使用优先级队列,大小是K,小根堆。遍历数组,当前数为num,如果num小于堆顶,那么num不可能是结果,如果num大于堆顶,那么就把堆顶元素弹出去,同时把num放入优先级队列,依次遍历完数组,堆顶元素就是答案。 为什么正确? 因为优先级队列保持着【当前最大的k个元素】,而堆顶则是 阅读全文
摘要:
题目链接 解题思路:来到index位置,决定偷,或者不偷。但是有一个问题,来到最后一个位置的时候,可以偷吗?因为房屋是一个圆圈,如果第一个位置偷了,那么最后一个位置就不能偷,那么暴力递归时,怎么知道呢? 将问题解耦成两个问题,第一个房间偷+第一个房间不偷。第一个房间偷,那么最后一个房间必不能偷;第一 阅读全文