Floyd's Blog

0-1背包问题

算法思路 我的核心问题:怎么想到用二维数组dp[i][j]表示的?我只能想到用一维的dp[i],但是很不好实现 答: 0-1背包问题属于“决策”+“有限资源(背包容量)”的模式。 之所以用二维数组 dp[i][j],是因为 0-1 背包问题需要同时考虑 “物品数量” 和 “背包容量” 两个维度, 这两个维度都会影响我们的决策,所以dp数组自然是二维的。 ...

lc.98 验证二叉搜索树

描述 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树只包含 小于 当前节点的数。 节点的右子树只包含 大于 当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 思路–中序遍历 观察可知,如上图,中序遍历的访问顺序 刚好是 二叉搜索树从小到大递增的顺序,所以我们把中序遍历到的结点值都添加到一个数...

lc.700 二叉搜索树中的搜索

题目要求 给定二叉搜索树(BST)的根节点 root 和一个整数值 val。 你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 null 。 方法1:递归 二叉搜索树的性质 左子树所有节点的元素值均小于根的元素值; 右子树所有节点的元素值均大于根的元素值。 算法 若 root 为空则返回空节点; 若 val=root.val,则返回 r...