摘要: 题目链接 解题思路:将区域划分成非0区域,0区域,待遍历区域,待遍历区域就是还没有遍历到的数集合。 非0区域用L表示,即[0, L - 1]是非0区域,初始值L = 0 待遍历区域,就是[i, n - 1],其中n是数组长度 0区域就是[L, i - 1] 直接看代码 代码 class Soluti 阅读全文
posted @ 2025-02-17 10:54 ouyangxx 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 题目链接 解题思路:先想一下暴力怎么做。直接看代码更清晰 # rest:还剩下的数字 def process(self, rest): if rest == 0: return 0 ans = 2 ** 31 - 1 # 从1开始尝试,最多尝试到sqrt(rest) for i in range(1 阅读全文
posted @ 2025-02-17 10:44 ouyangxx 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 题目链接 解题思路:利用原有的数组,i位置上的数就是nums[i],但是这里有一个问题,就是如果这个数是n,怎么办?n不能够放到nums[n]上。用一个变量n_index来存n这个数的位置(假设有n这个数),初始化为-1 第一种情况:没有n这个数,那么[0, n-1]上都已经放好了,此时n_inde 阅读全文
posted @ 2025-02-16 10:55 ouyangxx 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 题目链接 解题思路:不用管字母的顺序,只用管相同字母的个数。用哈希表,或者题目指明了只有小写字母,所以可以用数组来代替哈希表 代码 class Solution: def isAnagram(self, s: str, t: str) -> bool: has = [0] * 26 # 26个字母 阅读全文
posted @ 2025-02-16 10:21 ouyangxx 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 题目链接 解题思路:从右上角点,或者左下角点开始找即可。因为这两个点具有【单调性】 代码 class Solution: def searchMatrix(self, matrix: List[List[int]], target: int) -> bool: n = len(matrix) m = 阅读全文
posted @ 2025-02-15 20:54 ouyangxx 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 题目链接 解题思路:使用一个队列,队头的就是当前窗口内的最大值。队头到队尾是依次减小的。队中的其他元素是【最大值候选者】。假设当前窗口内值为4, 3, 1, 2,那么队列就是4, 3, 2,为什么?4可能是最大值吗?可能,现在就是最大值。3可能是最大值吗?可能,如果把4淘汰了,就可能是最大值了。1可 阅读全文
posted @ 2025-02-15 20:50 ouyangxx 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 题目链接 解题思路:就是把后面链表的值,依次往前挪,最后一个节点挪完之后,把倒数第二个节点的next指向空即可 代码 class Solution: def deleteNode(self, node): next_node = node.next while next_node.next: nod 阅读全文
posted @ 2025-02-15 20:11 ouyangxx 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 题目链接 解题思路:二叉树递归套路。从左儿子收集信息,从右儿子收集信息,然后得到本节点的信息,再返回给自己的父亲节点。 从儿子收集什么信息? 左儿子是否包含p?左儿子是否包含q?右儿子是否包含p?右儿子是否包含q 任意一个儿子包含p,那么本节点就包含p,任意一个儿子包含q,那么本节点就包含q 如果该 阅读全文
posted @ 2025-02-13 16:12 ouyangxx 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 题目链接 解题思路:二叉搜索树,中序遍历,就是有序的,就可以依次得到第K小的数了 代码 class Solution: # 中序遍历 就是从小到大遍历 def kthSmallest(self, root: Optional[TreeNode], k: int) -> int: stack = [] 阅读全文
posted @ 2025-02-13 15:20 ouyangxx 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 题目链接 解题思路:使用set,遍历数组,如果数组中存在该数,则直接返回True,否则加入set 代码 class Solution: def containsDuplicate(self, nums: List[int]) -> bool: has = set() for num in nums: 阅读全文
posted @ 2025-02-13 14:26 ouyangxx 阅读(0) 评论(0) 推荐(0) 编辑