LeetCode
文章平均质量分 68
shanshandeisu
这个作者很懒,什么都没留下…
展开
-
数据结构与算法:贪心与相关力扣题455.分发饼干、376.摆动序列、53.最大子数组和(贪心+动态规划dp)、122.买卖股票的最佳时机Ⅱ
贪心策略在实现时,经常使用到的技巧:根据某标准建立一个比较器来排序根据某标准建立一个比较器来组成堆。原创 2024-10-21 22:10:02 · 1154 阅读 · 0 评论 -
数据结构与算法:单调栈与相关力扣题739.每日温度、496.下一个更大元素、503.循环单调栈、84.柱状图中最大的矩形(为什么需要数组首尾或尾部加一个0)
单调栈适用于寻找左边或右边下一个比它大/小的元素。维护递增序列的话,就是求左/右下一个比它大的元素。维护递减序列的话,就是求左/右下一个比它小的元素。原创 2024-10-20 16:40:43 · 730 阅读 · 0 评论 -
数据结构与算法:二叉搜索树相关力扣题:108.将有序数组转换为二叉搜索树、538. 把二叉搜索树转换为累加树
说是转换为二叉搜索树,其实是平衡二叉搜索树。原创 2024-10-15 10:43:44 · 311 阅读 · 0 评论 -
数据结构与算法:(待更)二叉搜索树相关力扣题python题解:530.BST的最小绝对差、501BST中的众数、701.BST中的插入操作、450.删除BST的节点、669.修剪BST
效率:35ms,击败64.24%果咩……瓦塔西,懒b,不想优化了,狠狠sort就完事了hhh。原创 2024-10-14 17:35:14 · 206 阅读 · 0 评论 -
数据结构与算法:二叉树相关力扣题python题解:404.左叶子之和、513.找树左下角的值、112.路经总和、106.从中序与后序遍历序列构造二叉树、654.最大二叉树、700、层序遍历构造二叉树
注意整型变量的值在python中是不可变的,所以这里用了列表效率:16ms,击败71.04%也可以不用列表,直接返回值之和。原创 2024-10-11 17:54:25 · 447 阅读 · 0 评论 -
数据结构与算法:二叉树相关力扣题java和python题解94、102、226.翻转二叉树、101.对称二叉树、104二叉树的最大深度、111.二叉树的最小深度、257.二叉树的所有路径
效率:0ms,击败100.00%。原创 2024-10-02 22:18:38 · 317 阅读 · 0 评论 -
数据结构与算法:栈和队列的python(deque)实现(附有leetcode题20、1047、150逆兰波表达式、347前k个高频元素题解)
在python中用deque双向队列来表示栈或队列。或者用list来表示栈。原创 2024-10-01 19:28:16 · 424 阅读 · 0 评论 -
LeetCode662:二叉树最大宽度(二叉树非典型最大宽度,BFS层序遍历重编号)
给你一棵二叉树的根节点 root ,返回树的 最大宽度。树的 最大宽度 是所有层中最大的 宽度。每一层的 宽度 被定义为该层最左和最右的非空节点(即,两个端点)之间的长度。将这个二叉树视作与满二叉树结构相同,两端点间会出现一些延伸到这一层的 null 节点,这些 null 节点也计入长度。题目数据保证答案将会在 32 位 带符号整数范围内。示例 1:输入:root = [1,3,2,5,3,null,9]输出:4。原创 2024-02-13 01:05:11 · 612 阅读 · 0 评论 -
LeetCode 399:除法求值(图的bfs遍历)
给你一个变量对数组 equations 和一个实数值数组 values 作为已知条件,其中 equations[i] = [Ai, Bi] 和 values[i] 共同表示等式 Ai / Bi = values[i]。每个 Ai 或 Bi 是一个表示单个变量的字符串。另有一些以数组 queries 表示的问题,其中 queries[j] = [Cj, Dj] 表示第 j 个问题,请你根据已知条件找出 Cj / Dj =?的结果作为答案。返回 所有问题的答案。原创 2024-02-11 19:31:47 · 1112 阅读 · 0 评论 -
LeetCode:210课程表Ⅱ(图论:拓扑排序判断是否有环)
做本题之前最好先做了LeetCode:207课程表,见本人另一篇博客http://t.csdnimg.cn/vSXgN。原创 2024-02-09 00:08:20 · 1201 阅读 · 0 评论 -
LeetCode 207:课程表(图论,利用拓扑排序判断是否有环)
你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1。在选修某些课程之前需要一些先修课程。先修课程按数组 prerequisites 给出,其中 prerequisites[i] = [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课程 bi。例如,先修课程对 [0, 1] 表示:想要学习课程 0 ,你需要先完成课程 1。请你判断是否可能完成所有课程的学习?如果可以,返回 true;否则,返回 false。原创 2024-02-08 23:36:38 · 1153 阅读 · 0 评论 -
LeetCode 200:岛屿数量(图的简化版之网格结构上的BFS、DFS)
首先让我们回顾一下图的BFS和DFS遍历。可以看到这种BFS和DFS板子适用于图形状,或者说结构已经确定,即我们遍历的时候只需要从根节点从上往下遍历即可,不用考虑这个节点有几个叶子节点,是否会遍历到空节点等边界情况的问题。原创 2024-02-07 14:09:12 · 609 阅读 · 0 评论 -
LeetCode130:被围绕的区域(图的简化版之网格结构上的DFS)
注意:board[i][j] 为 ‘X’ 或 ‘O’原创 2024-02-07 14:08:03 · 466 阅读 · 0 评论 -
LeetCode 133:克隆图(图的深度优先遍历DFS和广度优先遍历BFS)
图的数据结构,以下两种都可以,dfs和bfs的板子是不变的。原创 2024-02-04 01:58:13 · 1075 阅读 · 0 评论 -
LeetCode:967连续查相同的数字(DFS)
返回所有长度为 n 且满足其每两个连续位上的数字之间的差的绝对值为 k 的 非负整数。请注意,除了 数字 0 本身之外,答案中的每个数字都 不能 有前导零。例如,01 有一个前导零,所以是无效的;但 0 是有效的。你可以按 任何顺序 返回答案。示例 1:输入:n = 3, k = 7输出:[181,292,707,818,929]解释:注意,070 不是一个有效的数字,因为它有前导零。示例 2:输入:n = 2, k = 0。原创 2023-12-17 00:02:41 · 479 阅读 · 0 评论 -
LeetCode:169.多数元素(哈希表)
直接开个哈希表,存储每个数组中的数字和对应出现的次数。然后排序后找出对应最大value值的key。原创 2023-12-07 20:17:44 · 460 阅读 · 0 评论 -
LeetCode 1745.分割回文串IV(动态规划)
给你一个字符串 s ,如果可以将它分割成三个 非空 回文子字符串,那么返回 true ,否则返回 false。当一个字符串正着读和反着读是一模一样的,就称其为 回文字符串。示例 1:输入:s = “abcbdd”输出:true解释:“abcbdd” = “a” + “bcb” + “dd”,三个子字符串都是回文的。示例 2:输入:s = “bcbddxy”输出:false解释:s 没办法被分割成 3 个回文子字符串。提示:s 只包含小写英文字母。原创 2023-12-07 00:30:09 · 568 阅读 · 0 评论 -
LeetCode 232.用栈实现队列+225.用队列实现栈(java和python代码)
请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true;原创 2023-12-03 20:54:21 · 482 阅读 · 0 评论 -
LeetCode Hot100之十:239.滑动窗口最大值(python+java实现)
给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回 滑动窗口中的最大值。原创 2023-11-18 20:08:21 · 375 阅读 · 0 评论 -
Leetcode Hot100之九:560. 和为 K 的子数组
给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数。子数组是数组中元素的连续非空序列。原创 2023-11-18 15:13:22 · 301 阅读 · 0 评论 -
LeetCode Hot100之一:1.两数之和(哈希表)
将LeetCode前300的简单题都刷一遍。将LeetCode Hot100的题都刷了。原创 2023-11-07 21:21:18 · 216 阅读 · 0 评论 -
LeetCode之二:字母异位词分组(哈希表)
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的所有字母得到的一个新单词。示例 1:输入: strs = [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]输出: [[“bat”],[“nat”,“tan”],[“ate”,“eat”,“tea”]]示例 2:输入: strs = [“”]输出: [[“”]]原创 2023-11-07 23:15:23 · 227 阅读 · 0 评论 -
LeetCode Hot100之三:128.最长连续序列
给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为 O(n) 的算法解决此问题。示例 1:输入:nums = [100,4,200,1,3,2]输出:4解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。示例 2:输入:nums = [0,3,7,2,5,8,4,6,0,1]输出:9。原创 2023-11-10 00:38:44 · 255 阅读 · 0 评论 -
Leetcode Hot 100之四:283. 移动零+11. 盛最多水的容器
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。示例 1:输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]示例 2:输入: nums = [0]输出: [0]原创 2023-11-10 00:25:51 · 373 阅读 · 0 评论 -
Leetcode Hot 100之五:15. 三数之和(双指针)
给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i!= j、i!= k 且 j!= k ,同时还满足 nums[i] + nums[j] + nums[k] == 0。请你返回所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]注意,输出的顺序和三元组的顺序并不重要。原创 2023-11-11 21:17:23 · 313 阅读 · 0 评论 -
Leetcode Hot100之六:(待更)42.接雨水的python和java解法(预处理双数组+单调栈)
给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。原创 2023-11-11 22:33:07 · 625 阅读 · 0 评论 -
LeetCode Hot之七:438. 找到字符串中所有字母异位词(哈希表)
给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。异位词 指由相同字母重排列形成的字符串(包括相同的字符串)。示例 1:输入: s = “cbaebabacd”, p = “abc”输出: [0,6]解释:起始索引等于 0 的子串是 “cba”, 它是 “abc” 的异位词。起始索引等于 6 的子串是 “bac”, 它是 “abc” 的异位词。原创 2023-11-12 19:22:26 · 133 阅读 · 0 评论 -
LeetCode Hot100之八:3.无重复字符的最长子串(哈希表+滑动窗口)
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: s = “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。原创 2023-11-16 23:45:30 · 318 阅读 · 0 评论