leetcode每日刷题
cx_0401
这个作者很懒,什么都没留下…
展开
-
leetcode刷题记录
leetcode刷题记录[1011. 在 D 天内送达包裹的能力](https://leetcode-cn.com/problems/capacity-to-ship-packages-within-d-days/)想每天刷一到两道题,记录起到一个目录作用即可1011. 在 D 天内送达包裹的能力原创 2021-04-26 20:33:17 · 253 阅读 · 0 评论 -
每日leetcode4.19-移除元素
每日leetcode4.19-移除元素27.移除元素27.移除元素思路和之前一道去重的提较为类似class Solution: def removeElement(self, nums: List[int], val: int) -> int: i = 0 j = 0 while j < len(nums): if nums[j] != val: nums[i] = nums[j原创 2021-04-20 11:41:50 · 57 阅读 · 0 评论 -
每日leetcode4.17-零钱兑换
每日leetcode4.14-零钱兑换-补518.零钱兑换II322.零钱兑换4.14因为某些事情耽误,今日额外弥补518.零钱兑换II今天突然有同学问到这种题,就去leetcode搜索这类题,经典背包问题我还是惯性使用了二维dp,实际上简单一维dp题目:给定不同面额的硬币和一个总金额。写出函数来计算可以凑成总金额的硬币组合数。假设每一种面额的硬币有无限个。样例:输入: amount = 5, coins = [1, 2, 5]; 输出: 4class Solution: def原创 2021-04-17 01:51:26 · 70 阅读 · 0 评论 -
每日leetcode4.16(扰乱字符串+无重复最长字串)
每日leetcode4.16(扰乱字符串)87. 扰乱字符串(hard)3 无重复字符的最长字串87. 扰乱字符串(hard)三维dp,四维运算,从长度为1开始向上增加class Solution: def isScramble(self, s1: str, s2: str) -> bool: l = len(s1) dp = [[[0] * l for i1 in range(l)] for i2 in range(l)] for p i原创 2021-04-16 23:47:26 · 53 阅读 · 0 评论 -
每日leetcode4.15-打家劫舍
每日leetcode4.16198. 打家劫舍213. 打家劫舍 II198. 打家劫舍简单dp,下面有进阶版from typing import Listclass Solution: def rob(self, nums: List[int]) -> int: l = len(nums) dp = [0] * l dp[0] = nums[0] for i in range(1, l): i原创 2021-04-15 22:00:37 · 55 阅读 · 0 评论 -
每日leetcode4.13-二叉搜索树
每日leetcode4.13-二叉搜索树783. 二叉搜索树节点最小距离(简单)783. 二叉搜索树节点最小距离(简单)本题我的方法是利用二叉排序树的特点,左子树的最大值为左子树的最右节点,右子树的最小节点为右子树的最左节点class Solution: def minDiffInBST(self, root: TreeNode) -> int: if root == None: return 0xffff l = self.min原创 2021-04-14 00:54:03 · 83 阅读 · 0 评论 -
每日leetcode4.12-盛水(双指针)+最大数(排序)
每日leetcode4.12-盛水(双指针)+最大数(排序)11. 盛最多水的容器179. 最大数11. 盛最多水的容器典型双指针from typing import Listclass Solution: def maxArea(self, height: List[int]) -> int: i = 0 j = len(height) - 1 ans = 0 while i < j:原创 2021-04-12 14:22:53 · 71 阅读 · 1 评论 -
每日leetcode4.11-丑数三
每日leetcode4.11-丑数三878. 第 N 个神奇数字(hard)1201. 丑数 III878. 第 N 个神奇数字(hard)首先用二分法+容斥原理class Solution: def nthMagicalNumber(self, n: int, a: int, b: int) -> int: def gcd(x: int, y: int) -> int: if x > y: x, y原创 2021-04-11 15:57:51 · 106 阅读 · 0 评论 -
每日leetcode4.10(丑数I、II)
每日leetcode4.10(丑数)丑数(简单)264. 丑数 II丑数(简单)一直除class Solution: def isUgly(self, n: int) -> bool: if n == 0: return False nums = [2, 3, 5] for i in nums: while n % i == 0: n /= i原创 2021-04-11 02:09:31 · 80 阅读 · 0 评论 -
每日leetcode4.9(旋转数组进阶/两数相加链表)
每日leetcode4.9(旋转数组进阶)154. 寻找旋转排序数组中的最小值 II(hard)154. 寻找旋转排序数组中的最小值 II(hard)from typing import Listclass Solution: def findMin(self, nums: List[int]) -> int: l = 0 r = len(nums) - 1 while l < r: m = (l + r原创 2021-04-10 01:55:11 · 116 阅读 · 4 评论 -
每日leetcode4.8-旋转数组最小值/正则表达式/通配符
每日leetcode4.8-旋转数组最小值153. 寻找旋转排序数组中的最小值153. 寻找旋转排序数组中的最小值看了题解发现的更简单的方法from typing import Listclass Solution: def findMin(self, nums: List[int]) -> int: i = 0 j = len(nums) - 1 while i < j: m = (i + j) //原创 2021-04-09 00:57:24 · 74 阅读 · 0 评论 -
每日leetcode4.6(单词拆分+合并K个有序链表)-待更新
每日leetcode两题4.5-单词拆分139、单词拆分我的初步解法from typing import Listclass Solution: def match(self, s: str, y: str) -> bool: if len(s) < len(y): return False for i in range(len(y)): if s[i] != y[i]:原创 2021-04-06 20:21:27 · 78 阅读 · 0 评论 -
每日leetcode4.5(接雨水)-待更新
每日leetcode两题4.4-接雨水42 接雨水(hard)from typing import Listclass Solution: def trap(self, height: List[int]) -> int: l = len(height) dpl = [0] * l dpr = [0] * l for i in range(1, l): dpl[i] = max(height[i原创 2021-04-06 20:19:02 · 56 阅读 · 0 评论 -
每日leetcode4.4(删除有序数组中的重复项)
2021.4.6#26. 删除有序数组中的重复项(简单)快慢指针class Solution: def removeDuplicates(self, nums: List[int]) -> int: i = 1 j = 1 while j < len(nums): if nums[j] != nums[i - 1]: nums[i] = nums[j]原创 2021-04-06 12:52:44 · 73 阅读 · 0 评论 -
每日leetcode 4.1(笨阶乘+逆波兰表达式)
2021.4.110006.笨阶乘原创 2021-04-02 10:49:53 · 139 阅读 · 0 评论 -
每日leetcode4.2(计算器)
每日leetcode两题4.22021.4.2224. 基本计算器(hard)227. 基本计算器 II(middle)2021.4.2224. 基本计算器(hard)知识点1: s[-1]可以用来表示list末尾知识点2: s.isdigit()可以表示数字(list中的char类型)class Solution(object): def calculate(self, s: str) -> int: i = 0 sign = 1原创 2021-04-02 19:49:36 · 66 阅读 · 0 评论 -
每日leetcode4.3(最长公共子序列+最长回文串)
每日leetcode两题 4.31143. 最长公共子序列经典dp问题py构建list二维数组方法class Solution: def longestCommonSubsequence(self, text1: str, text2: str) -> int: # ans = [[0 for col in range(len(text2) + 1)] for row in range(len(text1) + 1)] # 第一种方法 ans = [[原创 2021-04-06 12:50:42 · 48 阅读 · 0 评论