2016-12-21 AnnatarHe
最近写了一道数组去重的题,手抖,紧张,没写好。后来写了一会儿觉得还挺有意义的。现在做一下记录 Test case 测试用例如下 import test from 'ava' import unique from '../src/unique' 继续阅读 »
2016-12-22 AnnatarHe
生成二叉树 type Node struct { data string left *Node right *Node } nodeG := Node{data: "g", left: nil, right: nil} nodeF := Node{data: "f", left: &nodeG, right: nil} nodeE := Node{data: "e", left: nil, right: nil} nodeD := Node{data: "d", left: &nodeE, right: nil} nodeC := Node{data: "c", left: nil, right: 继续阅读 »
2016-09-17 craneyuan
题目描述 给定一个已排序的单链表,去除单链表中的重复元素,只保留一个重复的元素,并且返回新的单链表。 例如: 给出1->1->2,你的函数调用之后必须返回1->2。 输入 一个已排序的单链表,例如1->1->2。 输出 返回1->2。 代码示例 ``` java /** 单链表定义 * * @author: crane-yuan * @date: 2016-9-17 下午12:11:13 */ public class ListNode { public int val; public ListNode next; public ListNode(int x) { val = x; 继续阅读 »
2017-07-16 Robert Zhang
连连看是一种益智游戏,其核心算法是要在一个M * N的矩阵上找出两个点的“最短路径”,满足:1. 转弯数最少 2. 经过的点最少。谈到图的两点间最短路径,我们会想到用于无权图的广度优先搜索(BFS)和带权图的Dijkstra算法。那么对于连连看的M * N矩阵来说,究竟可以抽象成有权图呢还是无权图?如果有,权重又是什么呢? 继续阅读 »
2014-01-15 W.Y.
算法原理 希尔排序算法是按其设计者希尔(Donald Shell)的名字命名,该算法由1959年公布,是插入排序的一种更高效的改进版本。它的作法不是每次一个元素挨一个元素的比较。而是初期选用大跨步(增量较大)间隔比较,使记录跳跃式接近它的排序位置;然后增量缩小;最后增量为 1 ,这样记录移动次数大大减少,提高了排序效率。希尔排序对增量序列的选择没有严格规定。 希尔排序是基于插入排序的以下两点性质而提出改进方法的: - 插入排序在对几乎已经排好序的数据操作时, 效率高, 即可以达到线性排序的效率 - 但插入排序一般来说是低效的, 因为插入排序每次只能将数据移动一位 算法思路: 1. 先取一个正整数 d1(d1 < n),把全部记 继续阅读 »
2014-01-12 W.Y.
算法原理 快速排序是图灵奖得主 C. R. A. Hoare 于 1960 年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。 分治法的基本思想是:将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原问题的解。 利用分治法可将快速排序的分为三步: 在数据集之中,选择一个元素作为"基准"(pivot)。 所有小于"基准"的元素,都移到"基准"的左边;所有大于"基准"的元素,都移到"基准"的右边。这个操作称为分区 (partition) 操作,分区操作结束后,基准元素所处的位置就是最终排序后它的位置。 对 继续阅读 »
2017-05-21 Robert Zhang
关于最长上升子序列的O(N*logN)算法已经有不少文章表述,可惜大都不够“好”(甚至语焉不详):我认为“好”的算法描述不但应该清晰地说明计算步骤,更应该讲清思路——即,这个算法是怎样思考得出的。这种思考的过程和方式才是精华之处。我试图用我的理解对这个算法给出一个尽量“好”的推导和表述,使你我一样的普通人都可以理解它的思路。 继续阅读 »
2018-11-04 张炎泼
问题 系统中的所有数据以block 存放: 每个block里: 有 n=1000万个文件, 已经排序好, 每个文件名长度平均l=512 Byte. 2个block中可能包含大量的重复文件, 这时我们需要找出这2个block, 将其合并, 以节省空间. 继续阅读 »
2016-04-10 jude
网上有很多关于KMP算法的文章。用google搜“kmp算法”,第一页的文章我都看过,唯一能看懂并看完的就只有阮一峰的这篇。 继续阅读 »
2016-03-01 walter lee
在时间序列中,我们需要基于该时间序列当前已有的数据来预测其在之后的走势,三次指数平滑(Triple/Three Order Exponential Smoothing,Holt-Winters)算法可以很好的进行时间序列的预测。 继续阅读 »