几个有意思的算法题目

    这两天奔波于参加了两场校招面试,其中有很多非常有意思的算法题目,有一部分甚至都没有找到最优的答案,比较开放的算法设计题目。 其实面试不只是算法题的交流,当中还穿插着各式各样的非技术问题,毫无防备,都不知道如何展示自己了。

    看似数学推理的程序设计题:

    一个盒子中有100个白球,100个黑球,每次从盒子中不放回的取出两个球,如果取得的两个球是颜色相同,放入一个白球,如果取得的两个球颜色不同,放入一个黑球?最后盒子中剩下一个黑球的概率为多少?

 

    拓展:一个盒子中有m个白球,n个黑球,按照上面的方案,最后盒子中剩下一个黑球的概率为多少?

 

    旧的瓶子装上了新的酒的题:

    归并排序都应该非常了解,但是当描述完思路之后,面试官有可能说你来实现一个迭代版本的归并排序?   

 

    leetcode中有一个水槽装水的问题,

    Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it is able to trap after raining.

    For example, 
    Given [0,1,0,2,1,0,1,3,2,1,2,1], return 6.

    时间复杂度O(n),three-pass的算法比较容易想到,one-pass的算法呢?

 

    

posted @ 2014-10-14 15:41  weixliu  阅读(...)  评论(...编辑  收藏