leetcode-019-删除链表倒数第N个结点(Remove Nth Node From End of List)

2019-01-08
阅读 2 分钟
2.8k
Given a linked list, remove the n-th node from the end of list and return its head.给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。

华容道游戏(下)

2016-05-02
阅读 6 分钟
5.5k
华容道游戏看似简单,但求解需要设计的数据结构比较复杂,还牵涉到棋类游戏的棋局判断,所以整个过程还是挺费劲的。我尽量用面向对象的思想来进行封装,整个过程将分成几个部分记录下来,今天是最后一部分,棋局的广度搜索。

华容道游戏(中)

2016-04-29
阅读 5 分钟
6.3k
华容道游戏看似简单,但求解需要设计的数据结构比较复杂,还牵涉到棋类游戏的棋局判断,所以整个过程还是挺费劲的。我尽量用面向对象的思想来进行封装,整个过程将分成几个部分记录下来,今天是第二部分,棋局处理Zobrist算法原理及实现。

华容道游戏(上)

2016-04-29
阅读 5 分钟
7.8k
华容道游戏看似简单,但求解需要设计的数据结构比较复杂,还牵涉到棋类游戏的棋局判断,所以整个过程还是挺费劲的。我尽量用面向对象的思想来进行封装,整个过程将分成几个部分记录下来,今天是第一部分,数据结构的定义与初始化。

数独求解(javascript实现)

2016-04-24
阅读 5 分钟
11.3k
数独游戏,经典的为9×9=81个单元格组成的九宫格,同时也形成了3×3=9个小九宫格,要求在81个小单元格中填入数字1~9,并且数字在每行每列及每个小九宫格中都不能重复。

妖怪和和尚过河问题(javascript实现)

2016-04-11
阅读 4 分钟
5.8k
此题作者实现得过于复杂,我将初始状态定义为:[3,3,0,0,true],释义:依次表示,此岸和尚数量、此岸妖怪数量、彼岸和尚数量、彼岸妖怪数量、船在此岸否。有了以上定义,完全可以将这个题目看成与上一章桶等分水那个题目是一样的问题,两岸是两个“桶",和尚和妖怪是"水","水"在两个”桶“中回来倒,最后全部倒到彼岸那个...

三水桶等分8升水(javascript实现)

2016-04-10
阅读 4 分钟
7.1k
有三个容器分别是三升、五升和八升的水桶,其中容积为八升的水桶装满了水,其余两桶为空。水桶没有刻度,除这三个桶外不能使用其它容器,将8升水等分为两份4升的水。

阿拉伯数字与中文数字的转换(javascript实现)

2016-04-06
阅读 3 分钟
24.9k
此为《算法的乐趣》读书笔记,我用javascript重新实现算法。 阿拉伯数字转中文数字 中文数字的特点: 每个计数数字都跟着一个权位,权位有:十、百、千、万、亿。 以“万”为小节,对应一个节权位,万以下没有节权位。 每个小节内部以“十百千”为权位独立计数。 “十百千”不能连续出现,而“万”和“亿”作为节权位时可以和其他...

动态规划解字符串编辑距离(C语言实现)

2016-04-04
阅读 2 分钟
5.5k
假设source有n个字符,target有m个字符,问题可定义为source[1...n]到target[1...n]的编辑距离。子问题可以定义为source前[1...i]到target前[1...j]的编辑距离(最优子结构)。因此,可以定义状态d[i,j]为从子串source[1...i]到子串target[1...j]之间的编辑距离。状态递推关系方式分为两种情况,分别是source[i]等于targ...

javascript实现一些算法题

2016-03-28
阅读 3 分钟
4.2k
给定一个字符串,这个字符串为号和26个字母的任意组合。现在需要把字符串中的号都移动到最左侧,而把字符串中的字母移到最右侧并保持相对顺序不变,要求时间复杂度和空间复杂度最小。

一道面试题,不用循环解循环问题

2015-10-10
阅读 1 分钟
3.4k
被作为『砖家』请去为一家公司把关面试题,这是一个他们比较得意的题目,我一看惊住了,咱也不会,呵呵!他们是想让面试者用递归来解这个问题,而我认为如果他们的目的是这样的话,这题没有任何意义。但若从考查发散思维的角度来看这个问题的话,让面试者想尽可能多的解决方法来解决它,到是一个不错的选择。

散列(hashtable)的javascript实现

2015-09-26
阅读 3 分钟
3.3k
最近在看《数据结构与算法--javascript描述》,然后上npmjs.org去搜索,想找合适的库参考并记录下来,以备以后用时能拿来即用,最没有发现很合自己意的,于是就决定自己一一实现出来。

字典(Dictionary)的javascript实现

2015-09-25
阅读 2 分钟
8.5k
最近在看《数据结构与算法--javascript描述》,然后上npmjs.org去搜索,想找合适的库参考并记录下来,以备以后用时能拿来即用,最没有发现很合自己意的,于是就决定自己一一实现出来。

双链表(DoubleLinkedList)的javascript实现

2015-09-25
阅读 3 分钟
2.9k
最近在看《数据结构与算法--javascript描述》,然后上npmjs.org去搜索,想找合适的库参考并记录下来,以备以后用时能拿来即用,最没有发现很合自己意的,于是就决定自己一一实现出来。

单链表(LinkedList)的javascript实现

2015-09-18
阅读 3 分钟
5.8k
最近在看《数据结构与算法--javascript描述》,然后上npmjs.org去搜索,想找合适的库参考并记录下来,以备以后用时能拿来即用,最没有发现很合自己意的,于是就决定自己一一实现出来。

计数排序、桶排序和基数排序

2015-08-05
阅读 3 分钟
17.3k
由于用来计数的数组C的长度取决于待排序数组中数据的范围(等于待排序数组的最大值与最小值的差加上1),这使得计数排序对于数据范围很大的数组,需要大量内存。计数排序是用来排序0到100之间的数字的最好的算法,但是它不适合按字母顺序排序人名。但是,计数排序可以用在基数排序中的算法来排序数据范围很大的数组。

哈夫曼树(C++封装)

2015-01-08
阅读 5 分钟
7.7k
哈夫曼(Huffman)树又称最优二叉树。它是n个带权叶子结点构成的二叉树中,带权路径长度WPL最小的二叉树。因为构造这种树的算法是最早由哈夫曼于1952年提出的,所以被称之为哈夫曼树。

二叉排序树实现(C++封装)

2015-01-08
阅读 6 分钟
6.8k
它或者是一棵空树;或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3)左、右子树也分别为二叉排序树。

快速排序算法C++实现

2015-01-05
阅读 3 分钟
13.3k
一天一个算法,边回想算法细节,边捡回C++,试验性程序,留作记念。 交换排序有:冒泡排序和快速排序 {代码...} 网上一兄弟写的快排cSharp类,留作参考: {代码...}