什么是回溯 在求解诸如八皇后、全排列等问题时,我们通常使用深度优先搜索dfs在解空间内搜索满足条件的解,dfs的搜索过程可以看做是在一棵搜索树上遍历的过程。例如,求数字[1,2,3]的全排列的搜索树如下: 当我们搜索到树的深层向浅层返回的过程就是回溯。 (我认为可以这样理解:从上往下搜索是递归,从下 ...
分类:
编程语言 时间:
2020-04-25 23:13:57
阅读次数:
105
数据结构13—二叉搜索树,堆 二叉树 二叉树的定义 1. Binode的模版——递归定义法 2. Binode接口实现 3. BinTree模版 二叉搜索树 二叉搜索树search 测试用例举例: [4,2,7,1,3] 2 二叉搜索树的插入 递归 此递归代码和老师讲的稍微有所不同,需要返回的是整个 ...
分类:
其他好文 时间:
2020-04-25 01:22:54
阅读次数:
94
使用中序遍历,返回第k个数来处理 # Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None ...
分类:
其他好文 时间:
2020-04-24 01:02:36
阅读次数:
63
二叉查找树(Binary Search Tree),也称为二叉搜索树、有序二叉树或排序二叉树,是指一棵空树或者具有下列性质的二叉树: 若任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值; 若任意节点的右子树不空,则右子树上所有节点的值均大于它的根节点的值; 任意节点的左、右子树也分别 ...
分类:
编程语言 时间:
2020-04-23 18:45:21
阅读次数:
59
题目 https://leetcode cn.com/problems/validate binary search tree/ 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子 ...
分类:
编程语言 时间:
2020-04-22 09:39:44
阅读次数:
68
一般框架: 二叉搜索树框架 二叉树设计总路线: 1. 二叉树算法设计的总路线:把当前节点要做的事做好,其他的交给递归框架,不用当前节点操心。 2. 如果当前节点会对下面的子节点有整体影响,可以通过辅助函数增长参数列表,借助参数传递信息。 例题1:判断是否是一个BST,有些时候直接写不出来需要使用辅助 ...
分类:
其他好文 时间:
2020-04-21 23:43:57
阅读次数:
79
先序遍历构造二叉搜索树。题目即是题意,例子, Input: [8,5,1,7,10,12] Output: [8,5,10,1,7,null,12] 这个题可以迭代或递归都可以做,我这里暂时先给出递归的做法。因为是BST所以会简单很多,首先input的首个元素是树的根节点,接着写一个helper函数 ...
分类:
其他好文 时间:
2020-04-21 09:34:03
阅读次数:
63
参考网址: https://visualgo.net/zh/bst?slide=1 树 二叉树的 前序遍历 中序遍历 后序遍历 n叉树的 前序遍历 后序遍历 n叉树的层序遍历 // 二叉树的 前序遍历class Solution { public List<Integer> preorderTrav ...
分类:
其他好文 时间:
2020-04-20 17:35:47
阅读次数:
86
初识AlphaZero AlphaZero能够基于强化学习实现较高技巧的棋类博弈,我看过nb网友实现的基于MCTS的五子棋模型后,惊叹不已!特此记录一下其中训练的一些方法和技巧。 MCTS MCTS是指蒙特卡洛搜索树。 蒙特卡洛搜索树没听过的话,想必你是知道蒙特卡罗模拟的。这个模拟过程就是暴力的按照 ...
分类:
其他好文 时间:
2020-04-18 18:59:39
阅读次数:
207
前言 根据插入序列建立二叉平衡树并输出根结点,其实就是考察能否掌握建立二叉平衡树的过程。这题去年有写过,但是一直卡住了,这次终于写出来了,而且真的见识到了一些很 精妙 的操作,不管是调整还是插入过程。 题目描述 An AVL tree is a self balancing binary searc ...
分类:
其他好文 时间:
2020-04-18 13:41:24
阅读次数:
78