首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
功法秘笈
古今
创建于2023-07-29
订阅专栏
随心录
暂无订阅
共110篇文章
创建于2023-07-29
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
算法修炼Day35|● 860.柠檬水找零 ● 406.根据身高重建队列 ● 452. 用最少数量的箭引爆气球
LeetCode: 1.思路 直接创建5-10两个变量,遍历结束后看两个变量数是否小于0,如果小于则说明不满足顺序实现找零。 2.代码实现 3.复杂度分析 时间复杂度:O(n). 空间复杂度:O(1)
算法修炼Day34|1005.K次取反后最大化的数组和 ● 134. 加油站 ● 135. 分发糖果
LeetCode:1005. K 次取反后最大化的数组和 - 力扣(LeetCode) 1.思路 对数组进行升序排序,当数组元素小于0且k大于0时,取绝对值进行加和,当k==0时,直接加上数组元素值即
算法修炼Day32|122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II
LeetCode:122. 买卖股票的最佳时机 II - 力扣(LeetCode) 1.思路 将利润拆解,算出当天比前一天多的数,如果是正数就加上该数,表示前一天买入当天卖出,否则就加0,表示这两天不
算法修炼Day31|● 455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和
LeetCode:455. 分发饼干 - 力扣(LeetCode) 1.思路 从胃口或饼干大小两个角度中的一个去考虑 方法一:优先考虑饼干,小饼干满足小胃口。 方法二:优先考虑胃口,大胃口对应大饼干。
算法修炼Day30|332.重新安排行程 ● 51. N皇后 ● 37. 解数独
LeetCode:332. 重新安排行程 - 力扣(LeetCode) 1.思路 首先进行排序,将目的地址字符数值较小的排在前面优先考虑,这是排序的意义。 回溯方法参数;中止条件;确定单层递归的逻辑
算法修炼Day29|491.递增子序列 * 46.全排列 * 47.全排列 II
LeetCode:491. 递增子序列 - 力扣(LeetCode) 1.思路 回溯方法三部曲: 确定回溯方法参数及其返回值;确定单层递归的逻辑;确定终止条件。 2.代码实现 3.复杂度分析 时间复杂
算法修炼Day28|● 93.复原IP地址 ● 78.子集 ● 90.子集II
LeetCode:93. 复原 IP 地址 - 力扣(LeetCode) 1.思路 分割字符,判断被分割的部分是否有效,有效添加逗点,并对最后一段进行判断,终止条件为三个逗点数量。 2.代码实现 3.
算法修炼Day27|39. 组合总和 ● 40.组合总和II ● 131.分割回文串
LeetCode:https://leetcode.cn/problems/combination-sum/ 1.思路 组合问题,遍历 + 回溯即可。 步骤: ①确定回溯方法及其参数; ②确定单层递归
算法修炼Day25|● 216.组合总和III ● 17.电话号码的字母组合
LeetCode:216. 组合总和 III - 力扣(LeetCode) 1.思路 确定递归方法及其参数(传参的数量和最终实现目的要明确。);确定终止条件;确定单层递归逻辑(需要回溯)。 2.代码实
算法修炼Day24|77. 组合
LeetCode:77. 组合 - 力扣(LeetCode) 1.思路 回溯三部曲:递归函数返回值及其参数(startIndex)、确定终止条件、单层搜索的逻辑(for循环). 注意:resList.
算法修炼Day23|● 669. 修剪二叉搜索树 ● 108.将有序数组转换为二叉搜索树 ● 538.把二叉搜索树转换为累加树
LeetCode:669. 修剪二叉搜索树 - 力扣(LeetCode) 1.思路 比较当前节点值与区间值,将目标区间左侧和右侧的进行递归排除(排除法),比如:如果root.val<low,则向右递归
算法修炼Day22|● 235. 二叉搜索树的最近公共祖先 ● 701.二叉搜索树中的插入操作 ● 450.删除二叉搜索树中的节点
LeetCode:235. 二叉搜索树的最近公共祖先 - 力扣(LeetCode) 1.思路 首先,不用做判空处理了, 三种情况,当前节点值大于p和q,向左遍历;当前节点值小于p和q,向右遍历;分别返
算法修炼Day21|● 530.二叉搜索树的最小绝对差 ● 501.二叉搜索树中的众数 ● 236. 二叉树的最近公共祖先
LeetCode:530. 二叉搜索树的最小绝对差 - 力扣(LeetCode) 1.思路 创建可变的临时指针,采用递归方法中序遍历对 2.代码实现 3.复杂度分析 时间复杂度:O(). 空间复杂度:
算法修炼Day20|● 654.最大二叉树 ● 617.合并二叉树 ● 700.二叉搜索树中的搜索 ● 98.验证二叉搜索树
LeetCode:654. 最大二叉树 - 力扣(LeetCode) 1.思路 遍历数组,递归内容选出数组中最大值和对应索引作为根节点,将数组分为左右子数组分别作为根节点的左右子树,对两个子数组采用同
算法修炼Day18|● 513.找树左下角的值 ● 112. 路径总和 113.路径总和ii ● 106.从中序与后序遍历序列构造二叉树 105.从前序与中序
LeetCode:513. 找树左下角的值 - 力扣(LeetCode) 1.思路 定义两个变量,一个标记最大深度,一个记录对应深度的值。采用前序遍历即可。 2.代码实现 3.复杂度分析 时间复杂度:
算法修炼Day17|110.平衡二叉树 ● 257. 二叉树的所有路径 ● 404.左叶子之和
LeetCode110. 平衡二叉树 - 力扣(LeetCode) 1.思路 是否为平衡二叉树的条件:任何一个节点的左右子树间高度差大于 1 时,均不符合平衡二叉树的定义。直接返回 -1 即可,将最终
算法修炼Day16|104.二叉树的最大深度 559.n叉树的最大深度 ● 111.二叉树的最小深度 ● 222.完全二叉树的节点个数
LeetCode:104. 二叉树的最大深度 - 力扣(LeetCode) 1.思路 递归调用,最大值声明为全局常量 确定递归函数参数及其返回值:TreeNode node, int deep(不少细
算法修炼Day15|226.翻转二叉树 101.对称二叉树
LeetCode:层序遍历 10 102. 二叉树的层序遍历 - 力扣(LeetCode) 1.思路 结果导向:每一层一个数组,结果集为多层的结果,也就是数组为单位的结果集,故采用链表存储 2.代码
算法修炼Day14|递归遍历
LeetCode:二叉树前中后序遍历 144. 二叉树的前序遍历 - 力扣(LeetCode) 145. 二叉树的后序遍历 - 力扣(LeetCode) 94. 二叉树的中序遍历 - 力扣(LeetC
算法修炼Day13|239. 滑动窗口最大值 ● 347.前 K 个高频元素
LeetCode:239. 滑动窗口最大值 - 力扣(LeetCode) 1.思路 滑动窗口,暴力解法(超时) 双端队列,记录区间内最大值的索引,将索引对应的元素加入结果数组中,返回结果即可. 2.代
下一页