1、2000万个整数,找出第五十大的数字?
这个考察对最大堆和最小堆的理解,我们只需要取前50个元素建立一个最小堆,那么堆顶的元素就是这个堆中最小的元素,同样,如果这50个元素是由2000万个元素中最大的50个构成,那么堆顶的元素就是我们要找的元素了,这个可以通过堆顶元素与其它元素对比实现,当出现大于堆顶的元素时,用当前的元素替换堆顶元素,再次建立最小堆;重复堆顶元素和后续元素对比过程,经过一轮完整的对比我们就可以找出最大的50个元素行程的最小堆。
2、烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?
取绳子1,头和尾都点燃往中间烧,需要30分钟烧完,同时取绳子2点燃头一起烧,30分钟后再点燃绳子2的另一头,烧完还需要15分钟;到此一共花了45分钟,再次取绳子3两头点燃燃烧需要30分钟烧完,加上先前的45分钟刚好1个小时15分钟
3、求1000以内的水仙花数以及40亿以内的水仙花数
所谓”水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个”水仙花数”,因为153=1的三次方+5的三次方+3的三次方
4、时针走一圈,时针分针重合几次
11
5、N*N的方格纸,里面有多少个正方形
n^2 +(n-1)^2 +……+1 = (n+1)(2n+1)n/6个
6、x个苹果,一天只能吃一个、两个、或者三个,问多少天可以吃完?
最快 X/3+1 天,最慢 x天