随笔分类 -  Algorithm

摘要:转自:http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html字符串匹配是计算机的基本任务之一。举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,... 阅读全文
posted @ 2014-07-07 12:57 飞越彩虹 阅读(112) 评论(0) 推荐(0)
摘要:转自:http://love-oriented.com/pack/题目有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。基本思路这个问题非常类似于01背包问题,所不同的是每种... 阅读全文
posted @ 2014-05-21 20:53 飞越彩虹 阅读(187) 评论(0) 推荐(0)
摘要:转自:http://love-oriented.com/pack/题目有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。基本思路这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。用子问题定义状态:即f[i][v]表示前... 阅读全文
posted @ 2014-05-21 20:52 飞越彩虹 阅读(146) 评论(0) 推荐(0)
摘要:假设一整型数组存在若干正数和负数,现在通过某种算法使得该数组的所有负数在正数的左边,且保证负数件和正数间元素相对位置不变。时空复杂度要求分别为:o(n),o(1)例如 -3 4 2 -1 7 3 -5排序后 -3 -1 -5 4 2 7 3算法思想:从前往后遍历,记录第一个正数的位置,如果遇到负数就... 阅读全文
posted @ 2014-05-20 15:50 飞越彩虹 阅读(445) 评论(0) 推荐(0)
摘要:1 #include 2 3 void Hanoi(int n,char A,char B,char C) 4 { 5 if(n<=0) 6 return; 7 if(n==1) 8 printf("Move %d From %c To %c\n"... 阅读全文
posted @ 2014-04-17 14:54 飞越彩虹 阅读(189) 评论(0) 推荐(0)
摘要:问题描述求取数组中最大连续子序列和,例如给定数组为A={1, 3, -2, 4, -5}, 则最大连续子序列和为6,即1+3+(-2)+ 4 = 6。O(N)解法因为最大 连续子序列和只可能是以位置0~n-1中某个位置结尾。当遍历到第i个元素时,判断在它前面的连续子序列和是否大于0,如果大于0,则以... 阅读全文
posted @ 2014-04-17 10:46 飞越彩虹 阅读(180) 评论(0) 推荐(0)