随笔分类 -  算法 - 分治算法

正整数指数的快速幂
摘要:用递归,每次幂次升半。 1 typedef long long ll; 2 ll quick_pow(ll a, int n) 3 { 4 // 出口设置 5 if (n == 0) return 1; 6 ll ans = a; 7 int ex = 1; // 幂次 8 while ((ex < 阅读全文

posted @ 2020-04-16 22:12 Black_x 阅读(151) 评论(0) 推荐(0) 编辑

旋转数组的最小数字(二分)
摘要:题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组 {3,4,5,1,2} 为 {1,2,3,4,5} 的一个旋转,该数组的最小值为1。 分析: 1, 2, 3, 4, 5 的一个旋转是 3, 4, 5, 1 阅读全文

posted @ 2020-04-16 21:32 Black_x 阅读(155) 评论(0) 推荐(0) 编辑

小白上楼梯(递归设计)
摘要:题目:小白正在上楼梯,楼梯有n阶,小白一次可以上1阶、2阶或者三阶,实现一个方法,计算小白有多少种走完楼梯的方式。 递归式:f(n) = f(n - 1) + f(n - 2) + f(n - 3) 注意出口:n = 1、n = 2和n = 3时设置出口。 1 /* 2 *小白上楼梯 3 */ 4 阅读全文

posted @ 2020-04-16 20:03 Black_x 阅读(364) 评论(0) 推荐(0) 编辑

经典分治 - 汉诺塔游戏
摘要:分治策略: 将父问题划分为多个子问题(注:子问题与父问题一定要具有自相似性),然后找递归出口。 1.子问题规模变小。2.子问题与父问题本质等价。 汉诺塔游戏简述:三个柱A、B、C,将从大到小的盘按规则从A柱移到B柱。 具体的分治算法实现: 1 - N从A移动到B,C为辅助。 等价于: 1、1 - ( 阅读全文

posted @ 2020-04-12 15:36 Black_x 阅读(185) 评论(0) 推荐(0) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示