Counting Sundays
Give "1 Jan 1900 was a Monday", get "How many Sundays fell on the first of the month during the twentieth century (1 Jan 1901 to 31 Dec 2000)?"
小于1000的数字的英文字符串
Do not count spaces or hyphens. For example, 342 (three hundred and forty-two) contains 23 letters and 115 (one hundred and fifteen) contains 20 letters.
字符串实现大数字的相乘相加以及求指数
当数字大到不能用long来表示的时候,我们可以用String来表示,这样相乘相加不受位数限制,同时可以用于求大指数,例如pow(2,1000)
得到一个集合的全部子集,java实现
GetSubSet是得到给定大小的所有子集,若要得到所有子集,只需从i=1,2,...,n分别调用。
快速排序的C语言实现
《算法导论》快速排序的实现, 其中pivot的选择是random的,这样能保证平均情况下时间复杂度为O(nlogn)
分治法归并排序的C语言实现, 复杂度O(nlogn)
mergesort.h为归并排序的资源文件,main.c为merge sort的用法。
最短摘要的生成,Java, 阿里巴巴笔试题
文件Digest.java中extractSummary为摘要函数,具体用法详见main函数
寻找字符串的最长回文序列, C语言实现
此代码为实现寻找一个长字符串的最大回文序列,回文指两边对称的字符串,分为字符数为奇数和偶数两种情况。
背包问题C语言实现, 动态规划
背包问题C语言实现, 如要不同格式的输出,修改main函数即可
最长公共子序列,C语言动态规划
可以根据里面代码修改具体输出,实现过程根据《算法导论》
C语言实现的栈Stack
stack.h为栈的实现,testStack.c为stack的用法
C语言实现的队列Queue
数据结构Queue的实现在queue.h中, testQ为queue的用法
C语言实现的Hash哈希表
根据算法导论上的HashTable, C语言实现
C语言实现的单向链表和双向链表
slist.h为单向链表,blist为双向链表
C语言实现的堆数据结构及堆排序
按照算法导论上的伪代码写出的堆数据结构,实现的是最大堆的堆排序