栈、队列、链表都有他们各自的好处,同样的也有弊端的存在。
如果我想要一个有序的数组和链表这个当然很好实现。现在我要在这几个数据结构中查找一个值。先说数组,因为是有序的通过二分查找很快的就可以找到。查找的效率还是很高的,但如果要是插入呢,为了保证有序,我要先找到插入位置,然后再将比插入数字大的数字依次向后移动;这时的第一反应就是链表!他打插入速度很快,只要改变指针的指向就可以了。但是链表大查找要从头开始找啊。只有知道了前一个元素的地址才能知道下一个地址。所以链表查找起来又费劲了。这时候就有人引进了...
分类:
编程语言 时间:
2015-08-20 13:12:44
阅读次数:
132
通道题意:给一个树,边有颜色,点有权值。满足路径上没有两个相邻边同色的路径是好的路径,求好的路径的(路径上的点的权值和)的总和思路:边权排序,从任意一点开始深搜,每颗子树搜索完毕之后向上返回pair每次深搜完一个子节点之后,增加的过这一点的gorgeous边的总分数为: 之前深搜的所有子节点向上返回...
分类:
其他好文 时间:
2015-08-10 17:37:09
阅读次数:
103
//二叉树搜索树定义,中序遍历的思想 class ValidateBinarySearchTree { private TreeNode pre=null; public bool IsValidBST(TreeNode root) { if (root == null) ...
分类:
其他好文 时间:
2015-08-08 21:21:34
阅读次数:
137
【098-Validate Binary Search Tree(验证二叉搜索树)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题 Given a binary tree, determine if it is a valid binary search tree (BST).
Assume a BST is defined as follows:
The lef...
分类:
编程语言 时间:
2015-08-06 08:17:54
阅读次数:
234
k近邻是一种特别简单的有监督学习算法。给定一个带标签的训练数据集,从中选择与预测样本最近的k个训练样本,用这k个样本投票决定预测样本标签。
k近邻法三要素:距离度量,k值选择和分类决策规则为了提高k近邻搜索效率,比较常用的就是线性扫描和kd树(二叉树)
kd树构造:对每个维度的特征依次寻找中位数划分子集,并以此中位数作为节点
代码:
pass
kd树搜索代码:
主要就是舍弃当前兄弟节点与...
分类:
其他好文 时间:
2015-07-29 19:17:31
阅读次数:
125
Given n, generate all structurally unique BST's (binary search trees) that store values 1...n.
For example,
Given n = 3, your program should return all 5 unique BST's shown below.
1 3 ...
分类:
其他好文 时间:
2015-07-28 13:12:05
阅读次数:
92
二叉搜索树定义:二叉搜索树是一棵二叉树来组织的。二叉搜索中的关键字总是以满足二叉树搜索性质的方式来存储的。设x是二叉树中的一个节点。如果y是x左子树中的一个结点,那么y.key<=x.key。如果y是x右子树中的一个结点,那么y.key>=x.key。算法的分析:假如我们选择中序..
分类:
其他好文 时间:
2015-07-24 01:39:57
阅读次数:
122
对于长整型数据的映射,如何解决Hash冲突和Hash表大小的设计是一个很头疼的问题。
radix树就是针对这种稀疏的长整型数据查找,能快速且节省空间地完成映射。借助于Radix树,我们可以实现对于长整型数据类型的路由。利用radix树可以根据一个长整型(比如一个长ID)快速查找到其对应的对象指针。这比用hash映射来的简单,也更节省空间,使用hash映射hash函数难以设计,不恰当的hash函数可能增大冲突,或浪费空间。...
分类:
其他好文 时间:
2015-06-05 00:45:36
阅读次数:
158
题意:每组有n个字符串,每个串对应一个权值,给出一个手机按键表,每个数字键可对应按出几个字母,m个询问,给出一串数字(最后一位不计),求该数字串对应的权值最大的字符串(将数字串每个前缀对应的字符串输出);思路:将n个字符串插入字典树,在串的查询操作上进行深搜以便更新最大值,并且每个数字对应几个字符,...
分类:
其他好文 时间:
2015-05-14 18:14:53
阅读次数:
115
题意:在一个字符矩阵中找每个给定字符串的匹配起始位置和匹配方向(A到H表示八个方向);思路:将给定字符串插入字典树中,遍历字符矩阵,在每个字符处向八个方向用字典树找。#include#include#includeusing namespace std;typedef struct node{ .....
分类:
其他好文 时间:
2015-05-14 13:33:22
阅读次数:
203