算法----综合类type4

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天

推荐阅读更多精彩内容

  • 三、高级开发技术面试题 这里讲的是大公司需要用到的一些高端Android技术,这里专门整理了一个文档,希望大家都可...
    上善若水0819阅读 24,106评论 0 44
  • 排序算法有哪些?最快的排序算法是哪个?手写一个冒泡排序手写快速排序代码快速排序的过程、时间复杂度、空间复杂度手写堆...
    King0101阅读 760评论 0 0
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    Bamboo1688阅读 2,581评论 0 9
  • JAVA经典算法40题 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到...
    密奕阅读 204评论 0 0
  • 一、jQuery简介 JQ是JS的一个优秀的库,大型开发必备。在此,我想说的是,JQ里面很多函数使用和JS类似,所...
    Welkin_qing阅读 1,980评论 0 1