Leetcode
文章平均质量分 74
力扣刷题笔记
Yozu_Roo
这个作者很懒,什么都没留下…
展开
-
【基于栈的二叉树中序遍历】二叉树的中序遍历+栈,O(h)的空间复杂度
【基于栈的二叉树中序遍历】二叉树的中序遍历+栈,O(h)的时间复杂度一般情况我们通常使用递归算法对二叉树进行中序遍历,模板如下:void dfs(TreeNode *root){ if(!root)return; dfs(root->left); cout<<root->val<<endl; dfs(root->right);}该算法的时间复杂度为O(n),若需要对二叉树进行随机存取,则需要使用数组对二叉树进行扁平化保存,空间复杂度为O(n)在L原创 2022-05-27 16:10:39 · 610 阅读 · 0 评论 -
【优先队列+STL】218. 天际线问题(hard)——详细思路解析
【优先队列+STL】218. 天际线问题(hard)——详细思路解析1、题目再现218. 天际线问题城市的 天际线 是从远处观看该城市中所有建筑物形成的轮廓的外部轮廓。给你所有建筑物的位置和高度,请返回 由这些建筑物形成的 天际线 。每个建筑物的几何信息由数组 buildings 表示,其中三元组 buildings[i] = [lefti, righti, heighti] 表示:lefti 是第 i 座建筑物左边缘的 x 坐标。 righti 是第 i 座建筑物右边缘的 x 坐标。 heigh原创 2022-05-09 16:11:02 · 932 阅读 · 0 评论 -
【记忆化搜索】329. 矩阵中的最长递增路径——理解记忆化搜索的原理
【记忆化搜索】329. 矩阵中的最长递增路径——思路分析329. 矩阵中的最长递增路径给定一个 m x n 整数矩阵 matrix ,找出其中 最长递增路径 的长度。对于每个单元格,你可以往上,下,左,右四个方向移动。 你 不能 在 对角线 方向上移动或移动到 边界外(即不允许环绕)。输入:matrix = [[9,9,4],[6,6,8],[2,1,1]]输出:4解释:最长递增路径为 [1, 2, 6, 9]。这道题的常规解法是使用DFS算法,然而当该算法的时间复杂度为O(n2)O(n原创 2022-05-07 20:02:38 · 342 阅读 · 0 评论 -
【Bellman-Ford算法(求解最短路径约束问题)】787. K 站中转内最便宜的航班——算法分析
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2022-05-06 17:33:50 · 318 阅读 · 0 评论 -
【树形动态规划】968. 监控二叉树——思路分析
【树形动态规划】968. 监控二叉树——思路分析968. 监控二叉树给定一个二叉树,我们在树的节点上安装摄像头。节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。计算监控树的所有节点所需的最小摄像头数量。输入:[0,0,null,0,0]输出:1解释:如图所示,一台摄像头足以监控所有节点。思路分析【树形动态规划】本题以二叉树为背景,不难想到用递归的方式求解。本题的难度在于如何从左、右子树的状态,推导出父节点的状态。为了表述方便,我们约定:如果某棵树的所有节点都被监控,则称该原创 2022-05-04 17:02:31 · 355 阅读 · 0 评论 -
【单调栈】84. 柱状图中最大的矩形——数据结构经典问题求解思路
【单调栈】84. 柱状图中最大的矩形——数据结构经典问题求解思路该问题属于虽然是困难模式,但是却是数据结构的一个经典问题,该问题的求解方法包括:暴力法、单调栈方法。建议读者先掌握暴力法的求解思路,之后出于优化该算法的目的,提出了单调栈算法。84. 柱状图中最大的矩形给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。输入:heights = [2,1,5,6,2,3]输出:10解释:最大的矩形为图中红色区域,面原创 2022-04-25 09:32:31 · 380 阅读 · 0 评论 -
【树+前缀和】437. 路径总和 III——思路解释
【树+前缀和】437. 路径总和 III——思路解释437. 路径总和 III1.暴力法——深度优先搜索思路:逐个遍历树的每个节点从该节点开始遍历其左右子树,并累加求和如果当前的和等于targetSum,则ans++该种方法的时间复杂度为O(n2)O(n^2)O(n2),在进行测试的时候回出现INT溢出,因此在求和的过程中要用long long int/** * Definition for a binary tree node. * struct TreeNode { * i原创 2022-04-20 14:22:56 · 886 阅读 · 0 评论 -
【树形动态规划】337. 打家劫舍 III——思路解释
【树形动态规划】337. 打家劫舍 III——思路解释原创 2022-04-15 17:35:51 · 132 阅读 · 0 评论 -
【动态规划】309. 最佳买卖股票时机含冷冻期——思路分析与解释(详细)
【动态规划】309. 最佳买卖股票时机含冷冻期——思路分析与解释【题目】给定一个整数数组prices,其中第 prices[i] 表示第 i 天的股票价格 。设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: prices = [1,2,3,0,2]输出: 3解释: 对应的交易状态为: [买入,原创 2022-04-14 16:10:59 · 310 阅读 · 0 评论 -
【287. 寻找重复数(龟兔赛跑算法)】快慢指针判断是否有环
【龟兔赛跑算法】快慢指针判断是否有环对于慢指针,走过的路程为a+ba+ba+b对于快指针,走过的路程为a+nL+ba+nL+ba+nL+b,其中LLL代表环的长度由于快指针的速度是慢指针的2倍因此2(a+b)=a+nL+b2(a+b)=a+nL+b2(a+b)=a+nL+b即:a=nL+ba = nL+ba=nL+b=(n−1)L+(L−b)=(n-1)L+(L-b)=(n−1)L+(L−b)=(n−1)L+c=(n-1)L+c=(n−1)L+c上面的式子代表什么意思呢?意思是,如果原创 2022-04-13 16:55:40 · 733 阅读 · 0 评论