
面试题(数学类)
文章平均质量分 54
lhf1985314
这个作者很懒,什么都没留下…
展开
-
练思路的题
1、有1亿个浮点数,请找出其中对大的10000个。提示:假设每个浮点数占4个字节,1亿个浮点数就要站到相当大的空间,因此不能一次将全部读入内存进行排序。 可以发现如果一次读入那么机器的内存肯定是受不了的,因此我们只有想其他方法解决,解决方式为了高效还是得符合一定的该转载 2011-09-01 23:43:27 · 871 阅读 · 0 评论 -
随机取样问题
随机取样问题,在《计算机程序设计艺术》(volume 2 chapter 3)中得到了详细的讲解,关于该问题的详细探讨可以翻阅该书相应章节。随机取样问题可以分为:1、 确定数目元素的随机取样,可以表述为:从N个元素中获得K个相异且随机的元素。转载 2011-09-02 15:51:43 · 713 阅读 · 0 评论 -
去掉重复的数字
题目:请把一个整形数组中重复的数字去掉。例如: 1, 2, 0, 2, -1, 999, 3, 999, 88 答案应该是: 1, 2, 0, -1, 999, 3, 88 解法一:O(N2)#i原创 2011-08-26 01:02:31 · 1009 阅读 · 0 评论 -
找出数组中2个只出现了一次的数字
题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。#include int main() { int a[] = {1, 2, 0, 2, 1, 9, 3, 9,原创 2011-08-28 22:20:18 · 319 阅读 · 0 评论 -
随机概率发生器
题目: 已知一随机发生器,产生0的概率是p,产生1的概率是1-p,现在要你构造一个发生器,使得它构造0和1的概率均为1/2;构造一个发生器,使得它构造1、2、3的概率均为1/3;...,构造一个发生器,使得它构造1、2、3、...n的概率均为1/n,要求复杂度最低。转载 2011-08-30 16:33:51 · 710 阅读 · 0 评论 -
整数二进制中1的个数
#includeint count(int n){ int sum = 0; while(n) { n = n&(n-1); sum++; } return sum;} int main (){ int sum = 0;原创 2011-08-30 23:30:34 · 315 阅读 · 0 评论 -
找出数组中满足其左边的数都小于等于它,右边的数都大于等于它的数
问题描述:一个int数组,里面数据无任何限制,要求求出所有这样的数a[i],其左边的数都小于等于它,右边的数都大于等于它。能否只用一个额外数组和少量其它空间实现。#include using namespace std;int main() { int原创 2011-08-29 17:20:14 · 1853 阅读 · 0 评论