摘要: 题目: 给定一个自然数,可以在其前面增加大小不超过它本身一半的数字,形成的新数字属于半数集,这个数本身也属于半数集 例如set(6)={6,16,26,126,36,136} 求n得半数集的元素个数 思路: getset(n)=getset(1)+getset(2)+...+getset(n/2)+ 阅读全文
posted @ 2019-11-27 18:21 lucky99 阅读(800) 评论(0) 推荐(0) 编辑
摘要: 题目: 找出给定递增序列的众数,并求出众数在序列中出现的次数(重数) 思路: 一开始看到题目写的时候,用的是O(n)级别的一遍扫描法,边扫描边统计,现在用分治法来写一下 对于一个数组,首先我假设中间元素是众数,并且用区间内扫描法来定位所有与中间数相等的数,区间标记为[p,r],个数记为midcnt 阅读全文
posted @ 2019-11-27 17:51 lucky99 阅读(3322) 评论(0) 推荐(0) 编辑
摘要: 像这种二分查找,三分查找算法前提都是要在数组有序的情况下,否则就没有意义了 放一个最近练习分治法三分查找的代码: 1 #include<iostream> 2 using namespace std; 3 int a[] = { 0,1,2,3,4,5,6,7,8,9, }; 4 //在区间只有一个 阅读全文
posted @ 2019-11-27 17:02 lucky99 阅读(773) 评论(0) 推荐(0) 编辑