- 博客(11)
- 收藏
- 关注
原创 算法学习5.3分治算法例子
例题1:输出前m大的数描述给定一个数组包含n个元素,统计前m大的数并且把这m个数从大到小输出。输入第一行包含一个整数n,表示数组的大小。n < 100000。第二行包含n个整数,表示数组的元素,整数之间以一个空格分开 。每个整数的绝对值不超过100000000。第三行包含一个整数m。m < n。输出从大到小输出前m大的数,每个数一行。排序后再输出,复杂度 O(nlog...
2020-02-23 15:29:41 223
原创 算法学习5.2分治算法之快速排序
void swap(int &a,int &b) 为什么要加&符号参数里面的&表示引用型参数一般的参数传递的时候,形参是实参的副本,也就是说,形参虽然和实参一样,但是在内存中的位置不同而引用型参数,在函数参数传递的时候,并不要复制参数,形参和实参在内存中是同一个位置,因此修改形参,实参也变化了& 这里表示引用,说明需要传递变量给这个函数,函数中可以对...
2020-02-23 13:30:58 192
原创 算法学习5.1分治算法之归并排序
分治算法分治的基本概念把一个任务,分成形式和原任务相同,但规模更小的几个部分任务(通常是两个部分),分别完成,或只需要选一部完成。然后再处理完成后的这一个或几个部分的结果,实现整个任务的完成。分治的生活实例 --称假币16硬币,有可能有1枚假币,假币比真币轻。有一架天平,用最少称量次数确定有没有假币,若有的话,假币是哪一枚。 8 – 8 一称,发现无假币,或假币所在的那8枚 4 ...
2020-02-22 17:08:25 205
原创 算法学习3.4递归之算24
例题:算24给出4个小于10个正整数,你可以使用加减乘除4种运算以及括号把这4个数连接起来得到一个表达式。现在的问题是,是否存在一种方式使得得到的表达式的结果等于24。这里加减乘除以及括号的运算结果和运算的优先级跟我们平常的定义一致(这里的除法定义是实数除法)。比如,对于5,5,5,1,我们知道5 * (5 – 1 / 5) = 24,因此可以得到24。又比如,对于1,1,4,2,我们怎么都...
2020-02-20 22:25:22 1331
原创 算法学习3.3递归之放苹果
例题:放苹果把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?5,1,1和1,5,1 是同一种分法。输入第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。输出对输入的每组数据M和N,用一行输出相应的K。样例输入17 3样例输出8解题思想设i个苹果放在...
2020-02-19 21:27:15 310
原创 算法学习3.2递归之爬楼梯
输出不同的走法数,每一行输入对应一行输出样例输入5810样例输出83489代码块#include<iostream>using namespace std;int stair(int n){//表示n级台阶有多少种走法 if( n == 0 ) return 1; if( n == 1 ) return 1;...
2020-02-19 20:55:05 180
原创 算法学习2.2递归之逆波兰表达式
例题:逆波兰表达式用递归解决递归形式的问题题目逆波兰表达式是一种把运算符前置的算术表达式(其实一般教科书上称这种表达式为波兰表达式) ,例如普通的表达式2 + 3的逆波兰表示法为+ 2 3。逆波兰表达式的优点是运算符之间不必有优先级关系,也不必用括号改变运算次序,例如(2 + 3) * 4的逆波兰表示法为* + 2 3 4。本题求解逆波兰表达式的值,其中运算符包括+ - * /四个。...
2020-02-19 14:58:13 393
原创 算法学习2.1递归之n皇后问题
用递归替代多重循环n皇后问题:输入整数n, 要求n个国际象棋的皇后,摆在n*n的棋盘上,互相不能攻击,输出全部方案。输入一个正整数N,则程序输出N皇后问题的全部摆法。输出结果里的每一行都代表一种摆法。行里的第i个数字如果是n,就代表第i行的皇后应该放在第n列。皇后的行、列编号都是从1开始算。样例输入:4样例输出:2 4 1 33 1 4 2代码思路首先一行行的排皇后,在...
2020-02-19 14:27:18 193
原创 算法学习1.2枚举法之熄灯问题
熄灯问题题目注意与一盏灯毗邻的多个按钮被按下时,一个操作会抵消另一次操作的结果给定矩阵中每盏灯的初始状态,求一种按按钮方案,使得所有的灯都熄灭输入:– 第一行是一个正整数N, 表示需要解决的案例数– 每个案例由5行组成, 每一行包括6个数字– 这些数字以空格隔开, 可以是0或1– 0 表示灯的初始状态是熄灭的– 1 表示灯的初始状态是点亮的输出:– 对每个案例, 首先输...
2020-02-19 13:52:28 263
原创 算法学习1.1枚举法之称硬币
称硬币题目有12枚硬币。其中有11枚真币和1枚假币。假币和真币重量不同,但不知道假币比真币轻还是重。现在,用一架天平称了这些币三次,告诉你称的结果,请你找出假币并且确定假币是轻是重(数据保证一定能找出来)。输入第一行是测试数据组数。每组数据有三行,每行表示一次称量的结果。银币标号为A-L。每次称量的结果用三个以 空格隔开的字符串表示:天平左边放置的硬币 天平右边放置的硬币 平衡状态。 ...
2020-02-19 13:43:29 291
原创 算法学习3.1递归之四则运算表达式求值
用递归解决递归形式的问题例题: 四则运算表达式求值输入为四则运算表达式,仅由整数、+、-、*、/ 、(、) 组成,没有空格,要求求其值。假设运算符结果都是整数 。"/"结果也是整数表达式可以为项或项加减项可以为单因子或者因子乘除因子可以为整数或者(表达式)由此形成递归...
2020-02-19 13:27:06 976
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人