leetcode原题,要求将给定的列表分割成两个子集,且这两个子集和相等,本文将介绍记忆化递归和动态规划法。
leetcode 题目,判断给定链表是否存在环,本文将对该类型题目的各种变体进行分析、详解。
leetcode原题,难度较高,有几个难点,一是所给树是无向、连通树,只给定了树的边,因此树的根节点是不确定的,可能有多个,二是如何在一定时间复杂度内计算所有节点的距离和,本文主要介绍树形动态规划法,并且如何通过换根的技巧,降低时间复杂度。
leetcode原题,对从给定数字列表中,找到四个数字,使得这四个数字之和等于给定target,且得到的所有组合不重复。
leetcode原题,将字符串转为给定状态,并计算转换状态需要的最少步数,遇到最优问题解,可使用动态规划法求解。
leetcode题目,找出二叉搜索树中的众数,由二叉搜索树的性质,左子节点小于等于父节点,右子节点大于等于父节点,二叉搜索树的中序遍历,将会输出树中所有值从小到大的排列,在此过程中就可以统计每个数的出现次数。
leetcode题目,对给定的有向图的边,要求删除冗余连接,使得该有向图变为有根树,即除了根节点没有父节点之外,其他节点都有唯一父节点。
leetcode题目,二叉树的中序遍历,用递归的话非常简单,先遍历左子节点,再遍历父节点,最后是右子节点。本文重点在于分析只利用循环的写法。
leetcode题目,从给定数组中可重复地选取组合,使得选取的数的总和等于目标数。该题也是标准的回溯题,重点在于分析解空间,找到剪枝条件,否则时间复杂度会很高。
leetcode题目,给定两个整数n和k,返回1...n中所有可能的k个数的组合,经典的排列组合问题,本文详解利用回溯遍历所有组合可能,同时分析可以剪枝的操作。