设R={r1,r2,r3,.....rn}要进行全排列的n个元素,集合X中元素的全排列记为perm(X),则(ri)perm(X)表示在全排列perm(X)的每一个排列前加上前缀ri得到的排列。R的全排列定义可归纳定义如下: 当n=1时,perm(R) = (r),其中r为集合R中唯一元素 当n>1 ...
分类:
其他好文 时间:
2018-11-11 10:29:59
阅读次数:
134
题意:2n个数字,分别是11,22,33,nn 。 要求1和1之间有一个数字,以此类推,n和n之间有n个数字。问给定n,是否有满足这样的排序 准备知识: ①n对数,共2*n个数。所以要有2*n个位置来放置这2*n个数。②sum()表示求和运算。 正式解决: ①设k(k=1,2,..,n)放置的第一个 ...
分类:
其他好文 时间:
2018-10-28 20:38:16
阅读次数:
98
第二章是递归和分治策略,通过Hanoi塔问题、排列问题等学习递归的思想,通过二分搜索算法、大整数乘法等学习了分治法的思想,并学习了归并排序和快速排序两种排序方法。PTA上的问题一是找第k小的数,用到了快速排序的方法对数组进行排序,同时在寻找第k小的数时递归调用int find(int a[],int ...
分类:
编程语言 时间:
2018-10-06 21:38:48
阅读次数:
169
排列的问题,就是要把序列排个序,使之达到某种最优值或者统计方案数 dp可以解决部分排列问题。 通常的解决方案是,按照编号(优先级)排序决策,从左到右决策两种。 这里主要是第一个。 排座位? 有 𝑛 个人坐成一排? 对于相邻两个人 𝑖, 𝑗? 如果 𝑖 < 𝑗,则会产生 𝑎𝑖 + 𝑏? ...
分类:
其他好文 时间:
2018-10-06 21:34:25
阅读次数:
208
多个数进行排列时有两种方法,一种是纯粹用if语句(适合少量的数进行排序或已知有几个数进行排序),另一种方法是用冒泡排序(要用到数组)。其实还有很多种方法,如利用三目运算符的方法或利用库函数的方法等。重点掌握前两种。第一种的方法是用if语句将一个变量与其它变量进行比较换值,然后用第二个变量与其它变量比 ...
分类:
其他好文 时间:
2018-10-06 13:19:19
阅读次数:
93
1.n个元素排列问题 无重复时,N=n! 当a1, a2, ... am个元素分别重复m1, m2 ... mm时,则N=n!/m1!*m2!*...*mm! 2.n个元素分组问题 假设6个元素,分为1,2,3三组,则N=C61C52C33 若是平均分三组,则需N/3! 若是5个元素分为2 2 1三 ...
分类:
其他好文 时间:
2018-09-11 21:22:50
阅读次数:
153
生活中我们总是少不了组合数问题 今天我就来讲一讲有关组合数的问题 首先看一看全排列问题 先看一个栗子: 我给你3个颜色不同的球,让你算出一共有多少种排列 我们画一下: 如图所示,答案一共6种 那么这个6又是怎么来的呢? 我们来看一下下面这个过程: 假设第一步我们选了红色 那么第二步,我们就只剩下蓝色 ...
分类:
其他好文 时间:
2018-08-25 18:44:07
阅读次数:
167
给定一个无重复数字的序列,返回这些数所能排列出的所有序列。 方法一: 首先求出所有可能出现在第一个位置的字符,即把第一个字符和后面所有字符进行交换(自己本身进行交换也是其中一种); 然后把后面的字符继续分成两部分,将第一个字符与后面字符进行交换(包括字符本身),终止条件是:字符长度为1,无法进行交换 ...
分类:
其他好文 时间:
2018-07-14 17:41:22
阅读次数:
162
1、77. 组合 给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。 示例: 2、46. 全排列 给定一个没有重复数字的序列,返回其所有可能的全排列。 示例: (1)这道题是求全排列问题,给的输入数组没有重复项,这跟之前的组合和类似,解法基本相同,但是不同点在于那道不同的 ...
分类:
其他好文 时间:
2018-07-11 17:55:11
阅读次数:
145
面试17题: 题目:打印从1到最大的n位数 题:输入数字n,按顺序打印出从1到最大的n位十进制数,比如输入3,则打印出1、2、3一直到最大的3位数999. 解题思路:需要考虑大数问题,这是题目设置的陷阱。可以把问题转换成数字排列问题,用递归让代码更简洁。 参见剑指offer P114 解题代码: ...
分类:
其他好文 时间:
2018-06-18 17:09:34
阅读次数:
171