随笔分类 -  算法

摘要:1 # 有向无环图 2 def sortedTopology(graph): 3 inDict = {} # 存储节点:节点入度 4 zeroInQueue = Queue() # 存储入度为零的节点 5 for node in graph.nodes: # 遍历图所有的节点 6 ... 阅读全文
posted @ 2018-06-07 20:53 icekx 阅读(411) 评论(0) 推荐(0) 编辑
摘要:1.广度优先搜索 2.深度优先搜索 阅读全文
posted @ 2018-06-07 19:40 icekx 阅读(14642) 评论(1) 推荐(1) 编辑
摘要:1.每个节点类型设置 2.每条边类型设置 3.图的结构 4.图的实现 阅读全文
posted @ 2018-06-07 19:36 icekx 阅读(4915) 评论(0) 推荐(0) 编辑
摘要:1.给你一个二维数组,二维数组中的每个数都是正数,要求从左上角走到右下角,每一步只能向右或向下沿途经过的数字要累加起来,返回最小路径和 2.给你一个数组arr,和一个整数aim。如果可以任意选择arr中的数字,能不能累加得到aim,返回true 或者 false 阅读全文
posted @ 2018-06-07 10:31 icekx 阅读(1086) 评论(0) 推荐(0) 编辑
摘要:1 # 返回并移除当前栈底元素(栈内元素(1,2,3)==> (2,3),弹出1) 2 def getAndRemoveLast(stack): 3 res = stack.pop() # 依次将栈顶元素弹出并保存在res中 4 if len(stack) == 0: # 若此时栈已空:栈底元素返回 5 return res ... 阅读全文
posted @ 2018-06-07 10:02 icekx 阅读(523) 评论(0) 推荐(0) 编辑
摘要:暴力递归: 把问题转化为规模缩小了的同类问题的子问题 有明确的不需要继续进行递归的条件(base case) 有当得到了子问题的结果之后的决策过程 不记录每一个问题的解 1.给定任意正整数n,求n的阶乘 2.打印n层汉诺塔从最左边移动到最右边的全部过程 3.打印一个字符串的全部子序列,包括空字符串 阅读全文
posted @ 2018-06-06 23:06 icekx 阅读(2241) 评论(0) 推荐(0) 编辑
摘要:1 # 并查集实现 2 class Node: 3 pass 4 5 class UnionFindSet: 6 def __init__(self, nodes): 7 self.fatherDict = dict() 8 self.sizeDict = dict() 9 for node in nodes: ... 阅读全文
posted @ 2018-06-05 22:25 icekx 阅读(1233) 评论(0) 推荐(0) 编辑
摘要:哈希回顾 比较重要的性质: 不可逆:当你知道x的HASH值,无法求出x; 无冲突:当你知道x,无法求出一个y, 使x与y的HASH值相同 阅读全文
posted @ 2018-06-04 23:26 icekx 阅读(625) 评论(0) 推荐(0) 编辑
摘要:转载自 http://blog.csdn.net/cywosp/article/details/23397179 一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP 阅读全文
posted @ 2018-06-04 20:58 icekx 阅读(180) 评论(0) 推荐(0) 编辑
摘要:1.利用一般递归即可求得 2.利用完全二叉树的特性递归(时间复杂度O(logn*logn)) 阅读全文
posted @ 2018-06-04 09:34 icekx 阅读(1869) 评论(0) 推荐(0) 编辑
摘要:1.若节点类型没有parent属性,采用中序遍历方式获取后继节点 2.若节点存在parent属性即 阅读全文
posted @ 2018-06-04 08:17 icekx 阅读(1495) 评论(0) 推荐(0) 编辑
摘要:1.二叉搜索树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。(即中序遍历情况下,值依次增大) 2.完全二叉树:若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都 阅读全文
posted @ 2018-06-03 23:39 icekx 阅读(6904) 评论(0) 推荐(2) 编辑
摘要:1.先序遍历:根节点->左子树->右子树 2.中序遍历:左子树->根节点->右子树 3.后序遍历:左子树->右子树->根节点 4.按层遍历:从上到下、从左到右按层遍历 5.二叉树节点个数 6.二叉树的最大深度 阅读全文
posted @ 2018-06-02 23:51 icekx 阅读(15846) 评论(3) 推荐(1) 编辑