摘要: 题目链接 解题思路:动态规划:从左往右的尝试模型,来到index位置,只解码index一个数,或者解码index和index+1两个数 代码 class Solution: # 只需要解码s[index...]即可 def process(self, s: str, index: int, dp: 阅读全文
posted @ 2024-12-24 16:21 ouyangxx 阅读(52) 评论(0) 推荐(0)
摘要: 题目链接 解题思路:从后往前填数字即可 代码 class Solution: def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None: # 从后往前开始填充 L = m - 1 # nums1[0, L] 阅读全文
posted @ 2024-12-24 15:55 ouyangxx 阅读(19) 评论(0) 推荐(0)
摘要: 题目链接 解题思路:单调栈,以i位置为高度(宽),最长能有多长,其实就是找离i最近的,小于i的位置,其实就是单调栈 代码 class Solution: def largestRectangleArea(self, heights: List[int]) -> int: # 使用单调栈 栈底到栈顶 阅读全文
posted @ 2024-12-24 15:35 ouyangxx 阅读(8) 评论(0) 推荐(0)
摘要: 题目链接 解题思路:简单的回溯,就是两种情况,要这个数,不要这个数 代码 class Solution: # 现在来到index位置,决定nums[index]要,还是不要,ans是最终的结果,path是一条分支的结果 def process(self, nums: List[int], index 阅读全文
posted @ 2024-12-24 11:15 ouyangxx 阅读(6) 评论(0) 推荐(0)
摘要: 题目链接 解题思路:以i开头,最小覆盖子串是什么,然后求出所有的结果,最小的便是。先求出i的结果,是[i, j],然后求i+1时,直接从j后遍历即可。 窗口的思想,窗口在[i, j],然后来到i+1,先把i弹出去,弹出去的前提是,s[i]是我们需要的字符。然后再看[i + 1, j]是否满足,如果不 阅读全文
posted @ 2024-12-24 11:01 ouyangxx 阅读(19) 评论(0) 推荐(0)
摘要: 题目链接 解题思路:快排中的一部分,等于1的放中间,等于0的放左边,等于2的放右边 代码 class Solution: def sortColors(self, nums: List[int]) -> None: left_border = -1 right_border = len(nums) 阅读全文
posted @ 2024-12-24 09:42 ouyangxx 阅读(15) 评论(0) 推荐(0)