算法题
文章平均质量分 69
ffffffzz94
这个作者很懒,什么都没留下…
展开
-
剑-链表环中的入口节点
题目描述: 一个链表中包含环,请找出该链表的环的入口结点。 1. 判断是否为环形链表:设置一快一慢连个节点,慢的一次走一个节点,快的一次走2各节点。若为环形,则快节点能追赶上慢节点,记此节点为meetNode。 2. 计算环内节点数:meetNode一定在环形内,以它为起点遍历一圈,得到换内节点数量,记为n。 3. 找的入口节点:设置node1,node2节点同时从头结点出发,node2先原创 2018-01-16 20:31:11 · 175 阅读 · 0 评论 -
剑-正则表达式匹配(递归 + 动态规划)
题目描述: 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配。 递归解法 public static boolean isMatc原创 2018-01-16 15:11:42 · 778 阅读 · 1 评论 -
剑-二叉树序列化与反序列化(三种解法)
假设有一个二叉树 _30_ / \ 10 20 / / \ 50 45 35 解法一:前序遍历二叉树,空节点处插入#。如图 _30_ / \ 10 20 / \ / \ 50 # 45 35 /\ /\ /\ # # # # # #序列为:30,10,50,#,#,#,20原创 2018-01-17 21:12:43 · 302 阅读 · 0 评论 -
剑-数据流中的中位数
题目描述如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。解法:建立一个大顶堆和一个小顶堆,确保大顶堆的数都比小顶堆小。且大顶堆的数量总是等于小顶堆或者比小顶堆多一个。如果两堆数量相同,则中位数为两个堆顶之和除以二如果大顶堆比小顶堆数量多一,则中位数为大顶堆顶。/原创 2018-01-18 12:59:10 · 167 阅读 · 0 评论