出题:要求将一个有序整数数组转换成最小深度的Binary Search
Tree表示;分析:由于需要是最小深度,所以BST应保持平衡,左右节点数大致相当,并且BST中当前根节点大于所有其左子树中的元素,小于所有其右子树中的元素。对于排序数组而言,中间元素必然作为根节点,然后递归对由中间元素分割的左右...
分类:
其他好文 时间:
2014-05-26 03:49:39
阅读次数:
369
出题:在已经排序的数组中,找出给定数字出现的次数;分析:解法1:由于数组已经排序,所以可以考虑使用二分查找确定给定数字A的第一个出现的位置m和最后一个出现的位置n,最后m-n+1就是A出现的次数;使用二分查找可疑快速确定给定数字,但是如果确定其左右范围则比较麻烦,对编码细节要求较高;解法2:Hash...
分类:
其他好文 时间:
2014-05-26 02:54:22
阅读次数:
1285
题目如下:
Tree Summing
Background
LISP was one of the earliest high-level programming languages and, withFORTRAN, is one of the oldest languages currently being used. Lists,wh...
分类:
其他好文 时间:
2014-05-25 21:39:51
阅读次数:
276
问题:
给定两个字符串,S,T,返回S中包含T中所有字符的最短的字串,若不存在,则返回"".时间复杂度为O(n)。
例如:S = "ADOBCODEBANC"
T = "ABC"
返回BANC
生活场景:
把问题具体化现实化一点。有n层楼,每层楼里放有一个物品,现在老板给你一个物品清单,里面是要你集齐的物品,你可以乘坐电梯,但是电梯只停一次,停在哪...
hash wheel timer是一种算法,netty用来做心跳超时检查,这个算法有几个共有的属性:Ticks per Wheel (一轮的tick数),Tick Duration(一个tick的持续时间)以及 TimeUnit(时间单位)。关于Tick Duration我感觉应该解释为每一次tick时间间隔。
HashedWheelTimer原文英语注释表达了这样一层意思:
...
分类:
其他好文 时间:
2014-05-25 08:51:24
阅读次数:
230
寻找图中最小连通的路径,图如下:
算法步骤:
1. Sort all the edges in non-decreasing order of their weight.
2. Pick the smallest edge. Check if it forms a cycle with the spanning tree
formed so far. If cycle is n...
分类:
其他好文 时间:
2014-05-25 07:35:59
阅读次数:
301
Splay Tree 支持的之中操作。
插入,删除,求前驱和后即,区间更新与查询。
先来一发Splay Tree最基础的操作——伸展。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#pragma comment(linker, "/STACK:102400...
分类:
其他好文 时间:
2014-05-25 04:27:37
阅读次数:
291
字典树Trie
Trie,又称字典树,前缀树(prefix tree),是一种树形结构,用于保存大量的字符串。
它的优点是:利用字符串的公共前缀来节约存储空间。查找、插入复杂度为O(n),n为字符串长度。
它有3个基本性质:
1. 根节点不包含字符,除根节点外每一个节点都只包含一个字符。
2. 从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串。...
分类:
其他好文 时间:
2014-05-24 23:49:57
阅读次数:
346
题意:经典八数码问题
思路:HASH+BFS#include
#include
#include
#include
using namespace std;
const int MAXN = 500000;
const int size = 1000003;
typedef int State[9];
char str[30];
int state[9],goal[9]={1, 2, ...
分类:
其他好文 时间:
2014-05-24 21:46:23
阅读次数:
359