leetcode
leetcode
0x7ffffff
这个作者很懒,什么都没留下…
展开
-
LeetCode 二叉树相关
94. 二叉树的中序遍历非递归方式# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: def inorderTraversal(self, root: TreeNode) -> List[原创 2020-05-29 15:22:54 · 132 阅读 · 0 评论 -
leetcode 10.正则表达式匹配
动态规划:保存之前的计算结果以避免重复计算自下而上:先解决子问题,逐步填表(Tabulation)自上而下:不断分解问题直到最小,记忆存储(Memorization)题目要求给定字符串 s 和字符规律 p,判断s能否由p匹配。p[0 : j] 能否匹配 s[0 : i] 与其子问题(如 p[0 : j - 1] 能否匹配 s[0 : i])的解有关,考虑用自下而上填表方式。令dp[i][j] 表示 s[0 : i] 能否由匹配 p[0 : j] ,这里由于*的存在可以有空字符,所以令dp[i原创 2020-05-17 12:47:43 · 138 阅读 · 0 评论 -
leetcode 72. 编辑距离
求两个单词之间的编辑距离.两个单词之间的编辑距离的定义为将 word1 通过 插入, 删除, 替换 字母操作变成 word2 所需要的最小操作次数.令dp[i][j]表示 word1[0 : i] 和 word2[0 : j] 的编辑距离class Solution: def minDistance(self, word1: str, word2: str) -> int: ...原创 2020-03-14 22:56:38 · 107 阅读 · 0 评论 -
leetcode 76 最小覆盖字串 -- 滑动窗口
给定字符串 S, T, 求 S 的子串中包含 T 中所有字母的最短的一个.使用滑动窗口,即初始化窗口的范围为left = right = 0, 然后重复以下步骤从 S[right] 开始向右找符合要求的区间尝试是否能删除 S[left] 使该区间仍然满足要求.class Solution: def minWindow(self, s: str, t: str) -> s...原创 2020-03-14 22:13:20 · 96 阅读 · 0 评论 -
leetcode 39.组合总数
题目要求给出一个不含重复元素的数组 candidates 和目标值 target ,返回由candidates 中的元素组成的数组,每个数组中元素的和等于 target ,candidates 中的元素可重复使用。示例输入:candidates = [2, 3, 6, 7], target = 7输出:[[2, 2, 3], [7]] dfs即可解决class Solution:...原创 2020-03-01 00:11:44 · 79 阅读 · 0 评论 -
leetcode 42. 接雨水 Trapping rain water
题目要求给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6即图中蓝色部分的面积每个柱子上面所能盛放的水的数量是它左右两边最高的柱子的中较小的高度 h 减去它的高度,所以对于每一个柱子,要求的就是这个 h。如果某个柱子左边的最高的柱子比它右边的某个柱子矮,那么则不...原创 2020-02-29 22:52:25 · 95 阅读 · 0 评论 -
leetcode 31. 下一个排列Next Permutation
题目要求使用O(1) 空间返回给定列表数字序列的全排列的下一个,若当前是最后一个则返回第一个。产生下一个排列的一般思路:要得到比当前排列大的最小的排列,就是要让高位数字(前面的数字)与后面的数字交换,变成比当前大的最小的数字,然后再使该位后面的所有数字为从前到后升序。从后往前找出第一个比其后面数字小的数字,即从后往前第一个非递增的数字,记为 nums[i]从后往前找出第一个比 nums...原创 2020-02-28 14:07:09 · 98 阅读 · 0 评论 -
leetcode 34. First and last position of element in a sorted array.
题目要求在 O(log n) 时间内查找升序数组中和给定值相等的元素的第一个和最后一个位置按照普通二分查找方法查找,遇到 nums[i] 和 target 相等时,如果是要找最后一个位置就比较当先元素和它后一个元素的大小关系,相等则令 i = mid + 1 ,否则即为找到最右的位置;第一个位置同理。class Solution: def searchRange(self, nums...原创 2020-02-28 01:16:53 · 133 阅读 · 1 评论