摘要: Analysis: Try one more example, n = 3: 000 - 0 001 - 1 011 - 3 010 - 2 110 - 6 111 - 7 101 - 5 100 - 4 Comparing n = 2: [0,1,3,2] and n=3: [0,1,3,2,6, 阅读全文
posted @ 2017-08-12 13:05 apanda009 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 这道题是要求恢复一颗有两个元素调换错了的二叉查找树。一开始拿到可能会觉得比较复杂,其实观察出规律了就比较简单。主要还是利用二叉查找树的主要性质,就是中序遍历是有序的性质。那么如果其中有元素被调换了,意味着中序遍历中必然出现违背有序的情况。那么会出现几次呢?有两种情况,如果是中序遍历相邻的两个元素被调 阅读全文
posted @ 2017-08-12 12:26 apanda009 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 这道题是求解所有可行的二叉查找树,从Unique Binary Search Trees中我们已经知道,可行的二叉查找树的数量是相应的卡特兰数,不是一个多项式时间的数量级,所以我们要求解所有的树,自然是不能多项式时间内完成的了。算法上还是用求解NP问题的方法来求解,也就是N-Queens中介绍的在循 阅读全文
posted @ 2017-08-12 10:15 apanda009 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 方法一:分治法 TLE 最基本是得先清楚BST定义. 每个节点的所有左子节点值都比该节点小, 每个节点的所有右子节点值都比该节点小. 知道定义后在构建BST时可逐次选择value做根节点. 利用递归计算根节点左子树可能形状数目, 与根节点右子树可能形状数目, 最后将两个可能形状数目相乘得到所有可能的 阅读全文
posted @ 2017-08-12 09:56 apanda009 阅读(104) 评论(0) 推荐(0) 编辑