判断一颗树是不是二分查找树,非常经典基础的一个算法。我很久之前第一次做的时候,是先求出来了树的前序遍历的结果,然后判断这个数组排序后是否和排序前相同,还要判断重复虾米的,很纠结的一种做法。后来思考了一下怎么用递归的思路做,觉得应该根据定义返回两个子树的最大值和最小值,写了一会代码,发现好麻烦,不太对...
分类:
其他好文 时间:
2014-07-06 13:14:30
阅读次数:
178
题目意思:给一颗n个节点的树,每个节点有一个值要么是0要么是1,改变某个节点的值时,它的儿子不变,它儿子的儿子翻转,它儿子的儿子的儿子不变,如此类推。给定各个节点的目标值,求最少的翻转次数,使得达到要求。题解思路:贪心+Dfs判断当前节点的值,与目标值比较1.当前节点值由其上上一个节点值是否需要改变...
分类:
其他好文 时间:
2014-07-06 12:57:48
阅读次数:
150
把一个排好序的vector转换为一颗二分查找树。很简单的题目,递归即可,保证边界不要出错。 1 /** 2 * Definition for binary tree 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; ...
分类:
其他好文 时间:
2014-07-06 12:53:50
阅读次数:
174
定义
二叉搜索树(Binary Search Tree)或称二叉查找树,也称二叉排序树(Binary Sort Tree)。它或者是一棵空树,或者是具有下列性质的二叉树:
若左子树不空,则左子树上所有节点的值均小于它的根节点的值;
若右子树不空,则右子树上所有节点的值均大于它的根节点的值;
左、右子树也分别为二叉搜索树;
性质
二叉搜索树与普通二叉树相比,有一些优秀的特征或性质:
由于节点是有序排放的:左子树<根节点<右子树。故在查找一个节点的时候,只需先和根节点比较,再决定是进入左子树还是右子树查找。...
分类:
其他好文 时间:
2014-07-06 11:06:37
阅读次数:
167
题目链接:点击打开链接
题意:
给定n个节点的树
1为根
则此时叶子节点已经确定
最后一行给出叶子节点的顺序
目标:
遍历树并输出路径,要求遍历叶子节点时按照给定叶子节点的先后顺序访问。
思路:
给每个节点加一个优先级。
把最后一个叶子节点到父节点的路径上的点优先级改为1
把倒数第二个叶子节点到父节点的路径上的点优先级改为2
如此每个点就有一个优先级,每个访问儿子节...
分类:
其他好文 时间:
2014-07-06 10:11:10
阅读次数:
193
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=2795
~~~~
开始学习数据结构,从简单的开始吧,刷题累了就写解题报告,哈哈,沸腾吧,Segment tree!
~~~~
大致题意:一块 h*w的广告牌,蓝后就是n块1*wi大小的广告,依次贴到广告牌上,而且总是贴到最左上角,问贴完所有广告后所占的高度是多少?
#include
#...
分类:
其他好文 时间:
2014-07-06 00:35:13
阅读次数:
245
class BTNode:
def __init__(self, val):
self.left = None
self.right = None
self.val = val
'''
@ construct tree by inorder & preorder
'''
def constructByInPre(inorder, instart, inend, preorde...
分类:
其他好文 时间:
2014-07-06 00:34:00
阅读次数:
234
很简单的一道题,判断和为sum的路径是否存在。结果WA了两次,一次是由于没有考虑清楚深搜停止的条件,另外一次是由于没有考虑到Path必须是从root到leaf的。 1 /** 2 * Definition for binary tree 3 * struct TreeNode { 4 * ...
分类:
其他好文 时间:
2014-07-05 22:39:11
阅读次数:
253
非常简单的一个题,和path sum非常类似。 1 /** 2 * Definition for binary tree 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *rig...
分类:
其他好文 时间:
2014-07-05 22:03:48
阅读次数:
251
思路一:1、准备表结构及对应的表数据a、表结构:create table TB_TREE(CID NUMBER not null,CNAME VARCHAR2(50),PID NUMBER //父节点)b、表数据:insert into tb_tree (CID, CNAME, PID) value...
分类:
编程语言 时间:
2014-07-05 20:54:07
阅读次数:
396