递归
文章平均质量分 77
jacklanna
这个作者很懒,什么都没留下…
展开
-
递归求排列和组合(无重复和有重复)
给定一个大小为n的数组,输出所有全排列。1、数组中无重复元素:从前到后,依次将数组中的元素放置在输出数组中,若放完就输出,然后递归的改变元素的位置,直到输出所有的全排列。递归中使用一个标记数组来记录某个元素是否已经被放置过。2、数组中有重复元素:这个和1比较类似,区别在于用一个标记数组记录某个元素的次数,每放置一次就减一。问题1的代码如下:void PermRecur(vector原创 2013-08-15 09:17:47 · 1079 阅读 · 0 评论 -
CI8.4--求一个串的全排列
求一个串的全排列。思路:全排列实际上就是前后元素不断交换得到的结果。#include #include using namespace std;void Perm(vector& ivec, int begin){ if (begin == ivec.size()) { for (int i = 0; i < ivec.size(); ++i) cout <<原创 2013-08-14 15:11:43 · 562 阅读 · 0 评论 -
二维数组中的最长递减子序列
给定一个如下的二维数组a[][]1 3 5 7 42 1 8 6 54 0 -1 -2 6求其中的最长递减子序列:7, 5, 3, 1, 0, -1, -2,长度为7。子序列只能朝向上下左右四个方向,不能朝对角线方向。思路:该题一看感觉可以用动态规划做,但是下标不确定从哪里开始算起,因为有上下左右四个方向,没有办法顺序计算。只有用原创 2013-08-18 21:37:31 · 1791 阅读 · 2 评论