算法
文章平均质量分 95
buaa_sapphire
这个作者很懒,什么都没留下…
展开
-
给定rand5()能随机生成整数1到5的函数,写出能随机生成整数1到7的函数rand7()
今天面试遇见的一道题,当时思路没完全跟上,回来查了下,Google的一道题;参考https://blog.csdn.net/hxz_qlh/article/details/12978771分析:思路:很多人的第一反应是利用rand5() + rand5()%3来实现rand7()函数,这个方法确实可以产生1-7之间的随机数,但是仔细想想可以发现数字生成的概率是不相等的。rand()%...原创 2018-10-28 18:52:30 · 2257 阅读 · 0 评论 -
数组求和-从长度为n的数组里选出m个数使和为固定值sum
最近看的一道算法题,算是常规题目了,用python实现了一下思路:用二进制的0000000000~1111111111代表某个数字是否被选中,一个位代表数组中的一个元素是否被选中,可以概括所有的情况,如果数字是0101010101代表45,99,6,20,18五个数字被选出来了。接着我们只需要计算着五个数是否等于我们要最终需要sumdata_list = [-10,45,35,99,10...原创 2018-10-26 16:55:35 · 4118 阅读 · 0 评论 -
求数组中出现次数超过一半的元素
给定一个n个整型元素的数组a,其中有一个元素出现次数超过n / 2,求这个元素思路:设置一个当前值和当前值的计数器,初始化当前值为数组首元素,计数器值为1,然后从第二个元素开始遍历整个数组,对于每个被遍历到的值a[i]1 如果a[i]==currentValue,则计数器值加12 如果a[i] != currentValue, 则计数器值减1,如果计数器值小于0,则更新当前值为a[...原创 2018-10-26 19:45:13 · 914 阅读 · 0 评论 -
数组循环移位
将一个含有n个元素的数组向右循环移动k位,要求时间复杂度是O(n),且只能使用两个额外的变量.分析:比如数组 1 2 3 4循环右移1位 将变成 4 1 2 3, 观察可知1 2 3 的顺序在移位前后没有改变,只是和4的位置交换了一下,所以等同于1 2 3 4 先划分为两部分1 2 3 | 4,然后将1 2 3逆序,再将4 逆序 得到 3 2 1 4,最后整体逆序 得到 4 1 2 3很...原创 2018-10-27 12:26:27 · 1557 阅读 · 0 评论 -
基数排序
https://blog.csdn.net/MoreWindows/article/details/8204460上面是关联的一道题目算法原理基数排序 (Radix Sort) 是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。基数排序的发明可以追溯到 1887 年赫尔曼·何乐礼在打孔卡片制表机 (Tabulation Machine)上的贡献。...原创 2018-10-27 13:14:40 · 176 阅读 · 0 评论