一道经典的面试题:如何从N个数中选出最大(小)的n个数?
首先开辟一个大小为n的数组区A,从N中读入n个数填入到A中,然后将A维护成一个小顶堆(即堆顶A[0]中存放的是A中最小的数)。然后从N中取出下一个数,即第n+1个数m,将m与堆顶A[0]比较,如果m<=A[0],直接丢弃m。否则应该用m替换A[0]。但此时A的堆特性可能已被破坏,应该重新维护堆:从A[0]开始,将...
NP问题真的很难理解
我们还是引用上面的例子,从n个数里面找出最大的那个数,这个n就是该问题的规模大小。怎么找呢?我们要通过比较n-1次才能得到结果,这个n-1次就可以理解为所花的时间,也就是时间复杂度。再比如,将这n个数按从大至小排序,n是其规模大小,若是我们按照这样的方法:第一次从n个数里找最大,第二次从n-1个数里找...
互联网公司最常见的面试算法题有哪些?
1. 在长度为 n 的数组中,找出仅出现奇数次的唯一数字。2. 在长度为 n 的数组中,找出出现频率大于等于 n\/2 的数字。3. 在一个 n*m 的二维数组中,查找给定数字,每行和每列元素递增。4. 合并两颗二叉搜索树为一颗。5. 利用两个鸡蛋,找出100层高楼中,鸡蛋开始碎的最小楼层。面试算法题...
最近看到一个面试题目,觉得很有意思。就自己推导了下,不知道是否正确...
1、首先猜a=500,如果大了,证明1<a<500,反之1000>a>500 2、如果a<500,就猜a=250,如果大了,证明1<a<250,如果小了,证明250<a<500 3、按照上面方法,每次都猜范围的一半,每次都将范围缩小一半。这是数学里的一种常用解题方法(如:一元n次方程的解题方法)。在这个计算里,你可以这样...
c++经典面试题及答案
4. 有N个大小不等的自然数(1–N),请将它们由小到大排序.要求程序算法:时间复杂度为O(n),空间复杂度为O(1)。void sort(int e[], int n){ int i;int t;for (i=1; i { t = e[e[i]];e[e[i]] = e[i];e[i] = t;} } 5. 堆与栈的去区别 A. 申请方式不同...
经典的微软面试题目及参考答案
一种杯子,若在第N层被摔破,则在任何比N高的楼层均会破,若在第M层不破,则在任何比M低的楼层均会破,给你两个这样的杯子,让你在100层高的楼层中测试,要求用最少的测试次数找出恰巧会使杯子破碎的楼层。 第五题、 推理游戏 教授选出两个从2到9的数,把它们的和告诉学生甲,把它们的积告诉学生乙,让他们轮...
必看资深HR总结的经典面试题
考察要点:通常面对面直接沟通的方式最为有效,与书面沟通相比,面对面沟通发生误解的可能性较小,除非两一见面就剑拔弩张。 3、在过去的工作中您学习到了什么? 考察要点:考察应聘者是否能够从专业成就、人际关系、组织、产品、服务等多个角度来回答这个面试问题。 当谈及其从前的经历时,可测试应聘者是是否是个忠诚的...
nodejs面试题及答案(nodejs面试题2020)
14.算法题:数组中有n个元素,排列 EventLoop是计则扒没算机系统的运行机制,js就是运行这个机制,因为js是单线程语言,所以一旦遇到一个耗时很长的任务就会卡住,js为了解决这个问题就有了EventLoop EventLoop是一个程序结构,用于等待和发送消息和事件。 就是在程序中有了两个线程,一个负责应用本身,主线程,另一个负...
跪求:一些智力方面的推理问题
五个囚犯 一道真正难倒亿人的智力题,这是微软的面试题。 5个囚犯,分别按1-5号在装有100颗绿豆的麻袋抓绿豆,规定每人至少抓一颗,而抓得最多和最少的人将被处死,而且,他们之间不能交流,但在抓的时候,可以摸出剩下的豆子数。问他们中谁的存活机率最大?? 提示: 1,他们都是很聪明的人 2,他们的原则是先求...
常见的SQL面试题:经典50例
SQL基础技能是面试中的常见考察点,涉及的内容丰富多样。组函数是基础中的基础,包括去重(distinct)用于获取唯一值,sum()用于计算总数,count()用于统计数量,avg()求平均值,max()和min()则分别找到最大值和最小值。多表连接是更高级的技能,如内连接、左连接(left join)、右连接(right join)以及...