- 博客(6)
- 收藏
- 关注
原创 等概率随机洗牌算法
洗牌问题(shuffle)就如随机取样(random sample)问题,在《计算机程序设计艺术》(volume 2 chapter 3)中得到了详细的讲解,关于该问题的详细探讨可以翻阅该书相应章节。 洗牌问题,顾名思义,就是给你一把牌,让你把它完全打乱,这可以归结成一个数组问题: 给你一个长度为n的数组,要求你将其完全打乱,数组中元素交换跟下标是一一对应的,所以也就可以表述为
2012-11-16 22:19:03 1476 1
转载 数组中最小没出现的整数
#面试题#给定一个无序的整数数组,怎么找到第一个大于0,并且不在此数组的最小整数。比如[1,2,0] 返回 3, [3,4,-1,1] 返回 2。最好能O(1)空间和O(n)时间。来源http://weibo.com/lirenchen。 解法:直接考虑这个问题是比较困难的。不如先换个简单的问题。 问题1给定一个数组,长度为n,除a[0]以外,其他元素都是a[i] ==
2012-11-09 19:11:56 720
原创 从今天起写博客
这个博客开了很久了,由于懒与各种原因,总是没有将所学知识系统的记录下来。虽然在有道云笔记上从未停止过记录,但总是自己独自一人“孤芳自赏”,无法达到与他人共同学习讨论的效果,遂决定从今天起,开始用博客记录自己的学习历程。。。 还望与各位博友共同学习进步~
2012-11-05 23:11:41 386
原创 2012年 雅虎北京研发中心 电话面试的一道概率题
题目:已知一随机发生器A,产生0的概率是p,产生1的概率是1-p,现在要你构造一个发生器B, 使得它构造0和1的概率均为1/2。 初看确实有点头晕,也没什么思路。但是仔细想想为什么生成0和1的概率均为1/2,我们可以看成是生成0和1的概率是均等的。这样想之后,似乎就没那么不好理解了。原始的随机数生成器,生成0 的概率为p,生成1的概率为1-p,那么怎么构造才能使得生成0和1的概
2012-11-05 23:01:52 2606
转载 C++ 模板学习
1.模板的概念。我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。//函数1.int max(int x,int y);{return(x>y)?x:y ;}//函数2.float
2012-11-05 22:20:33 419
转载 C++中智能指针的设计和使用
智能指针(smart pointer)是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保自动正确的销毁动态分配的对象,防止内存泄露。它的一种通用实现技术是使用引用计数(reference count)。智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象共享同一指针。每次创建类的新对象时,初始化指针并将引用计数置为1;当对象作为另一对象的副本而创建时,拷贝构造函数拷
2012-11-05 20:29:49 743 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人