----递归分治
文章平均质量分 79
judyge
学习好 能力强。
展开
-
Fibonacci数列 递归 杨辉三角 动态规划
这篇帖子主要是介绍 递归 与 动态规划 之间是如何转换的,什么是递归估计不用多说,那么什么是 动态规划呢?我理解的动态规划就是:能够避免 直接 递归实现 中出现的重复运算的技术就是动态规划。这里有三个关键词:"直接"、"递归实现"、"重复运算"也许最简单的, 也是众所周知的动态规划题目是 Fibonacci数列, 如果你不知道,说明你的老师也不知道,而且我为你感转载 2015-04-16 11:58:16 · 1431 阅读 · 0 评论 -
LeetCode Search in Rotated Sorted Array
Suppose a sorted array is rotated at some pivot unknown to you beforehand.(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).You are given a target value to search. If found in the array retur转载 2015-05-09 09:16:13 · 340 阅读 · 0 评论 -
Leetcode: Search Insert Position
Suppose a sorted array is rotated at some pivot unknown to you beforehand.(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).You are given a target value to search. If found in the array retur转载 2015-05-09 08:49:12 · 385 阅读 · 0 评论 -
递归--放苹果
问题描述把 M 个同样的苹果放在N 个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K 表示)注意:5,1,1 和1,5,1 是同一种分法。输入数据第一行是测试数据的数目t(0 空格分开。1输出要求对输入的每组数据M 和N,用一行输出相应的K。输入样例17 3输出样例8我的思路:因为题目是用递归做的。我就想如何可以原来问题分转载 2015-05-09 08:24:27 · 457 阅读 · 0 评论 -
递归--红与黑
问题描述 (其实就是POJ的1979,那上面的测试数据更多)有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。输入数据包括多个数据集合。每个数据集合的第一行是两个整数W 和H,分别表示x 方向和y 方向瓷砖的数量。W 和H 都不超过20。在接下来的H 行中,每行转载 2015-05-09 08:27:31 · 1124 阅读 · 0 评论 -
递归--整数划分问题
问题描述:将正整数n表示成一系列正整数之和:n=n1+n2+…+nk,其中n1≥n2≥…≥nk≥1,k≥1。正整数n的这种表示称为正整数n的划分。问题1:输出整数n的所有可能的划分,如:输入:6输出: 5+1; 4+2,4+1+1; 3+3,3+2+1,3+1+1+1; 2+2+2,2+2+1+1,2转载 2015-05-09 08:27:23 · 682 阅读 · 0 评论 -
abc排列问题
例:用户输入:a,b,c输出: a,b,c,ab,ac,bc,abc解:此程序应不仅适用于3个字符的情况~运用递归即可解决:法1:[cpp] view plaincopyprint?#include #include #define MAX 100 int top = 0; //缓冲转载 2015-05-08 19:16:40 · 1067 阅读 · 0 评论 -
python实现自顶向下,自底向上
常用的算法设计思想主要有动态规划、贪婪法、随机化算法、回溯法等等,这些思想有重叠的部分,当面对一个问题的时候,从这几个思路入手往往都能得到一个还不错的答案。本来想把动态规划单独拿出来写三篇文章呢,后来发现自己学疏才浅,实在是只能讲一些皮毛,更深入的东西尝试构思了几次,也没有什么进展,打算每种设计思想就写一篇吧。动态规划(Dynamic Programming)是一种非常有用的用来解转载 2015-04-17 11:25:51 · 4278 阅读 · 0 评论 -
“斐波那契数列”的两种算法
“斐波那契数列”的两种算法 斐波那契数列有个规律:从第三个数开始,每个数是前两个数之和,比如:1 1 2 3 5 8 13 21 34 55...... 现在通过两种方式(递归与非递归)算数列中第N个值,代码如下: /** * 斐波那契数列算法,从第三个数开始,每个数是前两个数之和:1 1 2 3 5 8 13 21 34 55转载 2015-04-17 11:16:22 · 1224 阅读 · 0 评论 -
斐波那契数列 递推 递归 备忘录 动态规划
当n=0时,f(n) = 0 当n=1时,f(n) = 1当n>1时,f(n) = f(n-1) + f(n-2)递归算法:[cpp] view plaincopyint fun(int n) { if(n return 0; if(n == 1转载 2015-04-17 11:21:33 · 2487 阅读 · 0 评论 -
一些基本算法的递归实现
问题描述:递归是计算机科学中最伟大的思想。按照我的理解,所谓递归就是把问题化约为比自身维度更小的问题,直至边界点(base condition),然后利用边界点的解的结果(相对容易得到)和一定规则回退得到最终所需要的结果。 常用到的递归思想的可归类为:1. 各种tree construct 的操作:遍历(inorder, preorder, posto转载 2015-04-16 11:45:48 · 543 阅读 · 0 评论 -
八皇后问题(递归+非递归)
一.问题描述在8×8格的国际象棋棋盘上放置八个皇后,使得任意两个皇后不能互相攻击,即任何行、列或对角线(与水平轴夹角为45°或135°的斜线)上不得有两个或两个以上的皇后。这样的一个格局称为问题的一个解。请用递归与非递归两种方法写出求出八皇后问题的算法。二.解题思路描述一个正确的解应当是每一列,每一行,每一条斜线上均只有一个皇后。对于递归算法,本人才有模拟的方式进行原创 2015-05-05 23:08:30 · 2109 阅读 · 0 评论