算法
文章平均质量分 86
就爱吃西瓜
技术控 吃货 小清新 努力蜕变成为CODER 中
展开
-
POJ 1006 中国剩余定理
初见poj1006用的暴力破解写的代码,写完以后发现很搓。上网一查原来古人早就对此类问题有了解答规则。一、中国剩余定理一元线性同余方程组问题最早可见于中国南北朝时期(公元5世纪)的数学著作《孙子算经》卷下第二十六题,叫做“物不知数”问题,原文如下:有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?即,一个整数除以三余二,除以五余三,除以七余二原创 2013-12-01 21:32:13 · 1142 阅读 · 1 评论 -
Rabin-Karp 算法(字符串快速查找)
Go 语言的 strings 包(strings.go)中用到了 Rabin-Karp 算法。Rabin-Karp 算法是基于这样的思路:即把字符串看作是字符集长度进制的数,由数值的比较结果得出字符串的比较结果。 朴素的字符串匹配算法为什么慢?因为它太健忘了,前一次匹配的信息其实有部分可以应用到后一次匹配中去,而朴素的字符串匹配算法只是简单的把这个信息扔掉,从头再来,因此,浪费了时间。转载 2014-03-21 10:12:55 · 1237 阅读 · 0 评论 -
二叉树的遍历 递归 非递归 C++ 实现
二叉树的非递归遍历 二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种遍历中,前序和中序遍历的非递归算法都很容易实现,非递归后序遍历实现起来相对转载 2014-04-24 14:33:25 · 683 阅读 · 0 评论 -
十种常用排序算法浅析 附C++实现
一、相关知识:1、计算复杂度:(最差、平均、和最好性能),依据列表(list)的大小(n)。一般而言,好的性能是O(n log n),且坏的性能是O(n2)。对于一个排序理想的性能是O(n)。仅使用一个抽象关键比较运算的排序算法总平均上总是至少需要O(nlog n)。2、存储使用量:3、稳定度:稳定排序算法会依照相等的关键(换言之就是值)维持纪录的相对次序。也就是一个排序算法是稳定的,原创 2014-05-19 18:09:42 · 807 阅读 · 0 评论 -
leetcode 问题分类
最近想要lianxiyixiaDynamic ProgrammingEdit DistanceMaximum SubarrayMinimum Path SumUnique PathsUnique Paths IILongest Palindromic SubstringInterleaving StringTriangleDistinct SubsequencesDecode WaysPal原创 2014-05-26 12:57:10 · 1255 阅读 · 0 评论 -
链表 面试题整理
1.已知链表的头结点head,写一个函数把这个链表逆序[cpp] view plaincopyprint?void List::reverse() { list_node * p = head; list_node * q = p->next; list_node * r = NULL;转载 2014-06-10 16:18:48 · 664 阅读 · 0 评论 -
求最大公约数和最小公倍数
很简单的数学问题,不过大家是否能够准确实现?求最大公约数(greatest common divisor)的方法:一、辗转相除①设有两个正整数i、j, 且i>j;②计算c=i%j;③若c等于0,则j是i和j的最大公约数;若c不等于0,则i=j,j=c;④重复②③直到求得最大公约数;二、相减法①设有两正整数i、j;②若i等于j,则i或j就是两数的最大公约数原创 2014-06-30 11:30:24 · 1088 阅读 · 0 评论