
Leetcode
文章平均质量分 77
leetcode日常刷题
PaperReader
这个作者很懒,什么都没留下…
展开
-
《剑指offer》第二版
剑指offer原创 2023-02-22 23:16:32 · 628 阅读 · 0 评论 -
【日常】2022年4月25日 - 2022年5月1日
日常刷题23. 合并K个升序链表(Hard)23. 合并K个升序链表(Hard)# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution: def mergeKLists(self, lists: List[Optional[原创 2022-05-02 23:00:18 · 421 阅读 · 0 评论 -
【日常】2022年4月19日 - 2022年4月25日
日常刷题821. 字符的最短距离(Easy)230. 二叉搜索树中第K小的元素(Medium)821. 字符的最短距离(Easy)4月19号的每日一题。一道简单题。做法1:遍历每一个位置i,然后在i处定义两个指针left,rightleft, rightleft,right,两个指针同时向左右移动,当其中一个到头的时候,只移动另一个。直到两个指针中至少有一个指向的字符为目标ccc。想法很简单,复杂度很高。为O(n2)O(n^2)O(n2)class Solution: def shorte原创 2022-04-20 10:11:21 · 156 阅读 · 0 评论 -
【日常】2022年4月11日 - 2022年4月18日
日常刷题剑指 Offer II 105. 岛屿的最大面积114. 二叉树展开为链表113. 路径总和 II129. 求根节点到叶节点数字之和剑指 Offer II 105. 岛屿的最大面积比较简单的一道题,和之前那个求岛屿数量的差不多,都是同样的递归,但是求最大面积需要记录每隔岛屿的面积,然后求最大。这里递归有两种写法。本质上差不多。class Solution: def maxAreaOfIsland(self, grid: List[List[int]]) -> int:原创 2022-04-12 13:47:41 · 279 阅读 · 0 评论 -
【日常】2022年4月4日 - 2022年4月10日
2022年4月4日 - 2022年4月`在这里插入代码片`10日72. 编辑距离(Hard)53. 最大子数组和(Easy)72. 编辑距离(Hard)编辑距离算是动态规划里面难度比较高的一道题了,但是也并不是很难,只要知道了思路。class Solution: def minDistance(self, word1: str, word2: str) -> int: # if not word1: return len(word2) # if not w原创 2022-04-05 23:49:24 · 311 阅读 · 0 评论 -
【日常】2022年3月28日 - 2022年4月3日
日常刷题49. 字母异位词分组(Medium)49. 字母异位词分组(Medium)判断两个词是不是字母异位词最简单的方法就是排序,字符串是可以排序的,排序返回的是一个list。当然也可以使用哈希表判断每一个词出现的个数,这也时间复杂度会低,但是代码显得麻烦。本题是要把所有的字母异位词放到一起,最暴力的方法就是两层循环,每次比对两个字符串,对他们进行排序,看看一样不一样,一样的话说明属于同一个字母异位词。这样做最好不要使用for循环,因为for循环需要从头遍历到尾,内存循环可能会提前将后面的一个词归于原创 2022-03-29 00:04:29 · 125 阅读 · 0 评论 -
【日常】2022年3月21日 - 2022年3月27日
二叉树700. 二叉搜索树中的搜索98. 验证二叉搜索树530. 二叉搜索树的最小绝对差501. 二叉搜索树中的众数700. 二叉搜索树中的搜索传送门比较简单,递归和迭代都可以。class Solution: def searchBST(self, root: TreeNode, val: int) -> TreeNode: if not root: return None if root.val == val: return root原创 2022-03-22 00:00:05 · 535 阅读 · 0 评论 -
【周赛】第285常周赛
第285常周赛6027. 统计数组中峰和谷的数量6028. 统计道路上的碰撞次数6029. 射箭比赛中的最大得分6030. 由单个字符重复的最长子字符串6027. 统计数组中峰和谷的数量第一题其实不算难,但是我写的解法还是很low,虽然复杂度不算特别高,但是代码还是很冗余,不过居然也不是特别耗时,只需要40ms,15mb内存。思路也很简单,就是遍历,每次找到左边最近的不相等的数和右边最近的一个不相等的数。找到之后,比较一下,看看是峰还是谷。但是如果这个峰/谷不止一个数字,比如12221,此时只有一个原创 2022-03-20 21:12:21 · 228 阅读 · 0 评论 -
【双周赛】第74场双周赛
第74场双周赛6020. 将数组划分成相等数对6021. 字符串中最多数目的子字符串6022. 将数组和减半的最少操作次数6023. 用地毯覆盖后的最少白色砖块6020. 将数组划分成相等数对第一题很简单,不到一分钟就可以做出来了。思路就是统计每一个数字出现的次数,只有所有数字都出现过偶数次,才满足要求。class Solution: def divideArray(self, nums: List[int]) -> bool: # 判断数组是否每一个数字都出现过偶数次原创 2022-03-20 19:55:09 · 716 阅读 · 0 评论