动态规划理论基础 动态规划中每一个状态一定是由上一个状态推导出来的,这一点就区分于贪心,贪心没有状态推导,而是从局部直接选最优的。解题步骤分为五步: 确定dp数组以及下标的含...
动态规划理论基础 动态规划中每一个状态一定是由上一个状态推导出来的,这一点就区分于贪心,贪心没有状态推导,而是从局部直接选最优的。解题步骤分为五步: 确定dp数组以及下标的含...
122. 买卖股票的最佳时机 II[https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii/] 解题思...
455. 分发饼干[https://leetcode.cn/problems/assign-cookies/] 解题思路: 为了满足更多的小孩,就不要造成饼干尺寸的浪费。大尺...
51. N 皇后[https://leetcode.cn/problems/n-queens/] 解题思路: 约束条件:不能同行、不能同列、不能同斜线搜索皇后的位置,可以抽象...
491. 非递减子序列[https://leetcode.cn/problems/non-decreasing-subsequences/] 解题思路: path 中包含两个...
93. 复原 IP 地址[https://leetcode.cn/problems/restore-ip-addresses/] 解题思路: 注意isValid函数判断的时候...
39. 组合总和[https://leetcode.cn/problems/combination-sum/] 解题思路: 1. 回溯算法 这道题可以利用sum来逐层计算。注...
216. 组合总和 III 题目: 找出所有相加之和为 n 的 k 个数的组合,且满足下列条件: 只使用数字1到9 每个数字 最多使用一次返回 所有可能的有效组合的列表 。该...
回溯算法理论基础 回溯法是一种搜索的方式,本质上也是一种递归函数。回溯法解决的问题分为以下几种: 组合问题:N个数里面按一定规则找出k个数的集合 切割问题:一个字符串按一定规...
669. 修剪二叉搜索树 题目: 给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在[low, high...
235. 二叉搜索树的最近公共祖先 题目: 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,...
530. 二叉搜索树的最小绝对差 题目: 给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。差值是一个正数,其数值等于两值之差的绝对值。示例...
654. 最大二叉树 题目: 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。 ...
513. 找树左下角的值 题目: 给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。假设二叉树中至少有一个节点。示例: 解题思路: 1. 递归法...
110. 平衡二叉树 题目: 给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。...
104. 二叉树的最大深度 题目: 给定一个二叉树 root ,返回其最大深度。二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。示例: 解题思路: 这道题...