2019进大公司面试题要点

百度,阿里,腾讯,京东是数一数二的大厂,也就是常说的BATJ,想进这样大厂的人肯定会有不少,那么怎么才能进去呢?下面我来分享一波今年的面试题。




  首先要上的不是技术题,而是人事(HR)一般会问什么,相信大家都不想在被问技术之前被人事的问题刷下来吧!

  如果你是大学生:
  1.请谈一下你自己的一些情况

  【思路】:建议大家用2分钟得自我介绍,面试官较喜欢的自我介绍(1)有亮点,每一小段都有一个亮点,而不是平铺直叙(2) 有互动:每一小段都会和面试官互动,而不是自说自话,但是切记,这种互动并不需要面试官配合,绝对不要总是直勾勾地盯着面试官的眼睛逼着人家配合你,要知道面试官最恐怖的经历就是被申请人从头盯到尾!(3) 相关性强: 每一小段都和所申请的职位有关系,而不是流水账。

  2.你对自己的学习成绩满意吗

  【思路】:有的毕业生成绩比较好,这样的问题就很好回答,但对于那些成绩不太好的毕业生,可以表明自己的态度,并给予一个合适的理由,但不能找客观原因,如“老师教得不好”,显得你是推卸责任的人,同时最好突出一个自己好的方面,以免让人觉得你一无是处。

  正确回答:比较满意,我想我在学校学到的不仅是课本知识,还学到很多为人处世的经验。 3.你有什么优缺点

  【思路】:优点在这个问题上, 面试官关注的问题有两点。第一, 申请人没有撒谎, 而是真实地阐述了自己的优点。第二, 他所阐述的优点, 恰好是这个职位所需要的素质。有很多时候, 对于一个岗位而言的优点, 会成为另一个岗位的缺点。比如说, 如果你具备很强的领导能力, 往往不适合从事秘书、 助理、 客户服务代表等以细节和服务他人为主的工作。所以, 在回答这个问题的时候, 要遵从以下步骤:

  (1) 找出自己的三至五个优点;

  (2) 每个优点找出N多个例子, 举例最好来自学习、 工作和生活等三个方面, 而不是仅仅来自一个方面;

  (3) 在这三到五个优点之中, 精选出一两个和所申请职位最吻合的优点。 缺点认识自己的缺点是一个巨大的优点, 当HR问到你缺点的时候, 你的机会来了, 请快展示你的自知之明吧!你想把优点故意包装成缺点?比方说把"对工作负责"这个优点伪装成"对自己和他人要求过高?" 面试官会不屑一顾地批注: 这是我五年前玩剩下的把戏, 此人土冒之极。你想完全实话实说: 应聘会计的人说自己粗心?应聘销售的人说自己容易紧张?面试官会无限惋惜地批注: 此人心眼好, 老实, 但不适合我们的工作, 推荐到"实话实说"栏目组任职去吧!对待这个问题, 惟一的对策就是真诚地暴露自己的弱点, 只要这个弱点不是你所申请职位的"致命伤"即可。

  4.你觉得大学生活使你收获了什么?

  【思路】:这是一个总体概括性的问题, 很明显, 面试官期待你给出一个总体概括性的回答。

  范例:回答示范1: 我觉得大学生活使我学会了与人沟通, 可能您会觉得, 十个大学生有九个会强调自己善于与人沟通, 不过我依然觉得这是我大学里面最大的收获。您从简历上看得出来, 我大学里在学生会工作了两年半, 从干事一直到副 , 这使我有机会锻炼与年龄、 背景完全不同的人交流, 从学生到老师, 从学校的领导到校外的公司, 每一种沟通的方式和方法都不同, 的确使我学到了很多。回答示范2: 我觉得大学是我迄今为止成长最快的时期, 有很多收获。首先是知识和技能方面的, 我修了"地理科学"和"管理学"两个专业, 虽然我不打算从事地理科学方面的工作, 但是我掌握了很多必要的工作技能, 比如搜索信息、 分析信息、 独立思考等。除了知识, 我还提升了自己的综合素质。就拿我担任班长这件事来说, 我觉得提升很快, 首先是要竞选, 竞选成功以后要策划吸引人的班级活动, 策划活动的过程中要调动同学一块参与等等, 每一个环节都很锻炼人。

  5.谈一谈你的一次失败经历”

  【思路】:1、 不宜说自己没有失败的经历。 2、 不宜把那些明显的成功说成是失败。 3、不宜说出严重影响所应聘工作的失败经历, 4、 所谈经历的结果应是失败的。 5、 宜说明失败之前自己曾信心白倍、尽心尽力。 6、说明仅仅是由于外在客观原因导致失败。 7、 失败后自己很快振作起来,以更加饱满的热情面对以后的工作。如果是外企,你就可以说失败的经历就是追女孩子失败之类~~ 如果是国企,最好编一个故事,随便编什么,比如说学校的运动会,你参加800米的比赛啊,你准备成绩跑到多少秒,之前也进行了精心准备,练习,但最后没有跑到那个成绩,所以你发愤练习,终于在第二年的运动会跑进了前三,破了开始预定的目标,,哈哈,我是瞎编一个,我的意思就是告诉你,虽然让你讲失败的经历,但你讲了之后要让人家听了,虽然失败了,但是你很有精神,另外一种意义上是一种成功,明白了吧,但要注意哦,要编的圆满一点,特别涉及倒数字,一定要准确,不要闹笑话~~~

  6. 如果你在大学(学院)做过兼职工作的话,你认为哪种兼职工作对你最有意思?为什么? 【思路】:当面试刚刚走出校门的毕业生时(就是那些几乎没有工作经验的应聘者),企业希望录用那些要么学习很快,要么有领导(管理)潜力的毕业生。希望对方有决定能力、毅力(时间加努力等于成功),或是能够看清人的能力,在介绍兼职时着重突出你的学习能力、工作能力、工作业绩等 7. 最能概括你自己的三个词是什么? 【思路】:概括自己得三个词要结合你所应聘岗位来写,然后用一个自身例子分贝来来解释这三个词,比如:学习能力强、创新能力强、有团队精神、有责任心等

  8.你的实力是什么?

  【思路】:描述你得专业技能、两三项和该工作最相关的工作经验或项目经验。避免老生常谈或过分笼统,应提供详细的例子。描述能把这些技能运用于新职位的新方法。例如,指出你仅有他们要求的工作经验是明智的,面试官肯定很重视这些,另外你不仅指出你以前的技能、相关得工作经验,还要说明你能胜任这份工作。

  9.你的私人生活是否存在对你的职业造成影响的问题?

  【思路】:使面试官深信你能把私人的感受和职业行为分开来。例如,假如你不能积极处理好危急关头的事情,你就不可能真正帮助你的病人面对创伤问题,因为那会引发你太多个人的强烈情绪

  正确回答:我总是很注意把自己的私人生活与职业生活分开。我认为在给病人治病时,重要的是保持客观。一个临床医生应该能够控制自己的感情而不带偏见地给病人看病。假如你把个人的问题或感受发泄到病人的身上,那只能对病人造成伤害。这个问题对于在医疗服务领域工作的人尤为重要。面试官想知道作为一个独立个体,你是如何完善你的人格的。假如你有不能克服的个人问题,这些问题就会影响你和你病人的关系,也有可能影响你对病人的诊断,同时影响你的治疗方案和治疗建议。

  10.告诉我你从最近读的书中学到什么

  【思路】:面试官想知道求职者是否与公司的其他人有着共同的兴趣。你利用业余时间有效、轻松地学习新的东西 吗?你生性对什么好奇?

  正确回答:我喜欢读人物传记,尤其是那些生活在不同时代人的传记。最近,我读了丘吉尔的传记,这本书教会了我很多领导的价值和重重压力下获得的良好的公共关系。

  11.你是否有过工作经验?

  【思路】:最好的回答是如实回答自己的真实情况。如果学员没有工作经验的话,依照岗位要求的技术方向以及岗位职责,把重点转移到做过的类似的项目经验上去,让面试官确信你的技术能够胜任这个岗位。 有过工作经验的学员,要把以前的工作经验描述的和应聘的岗位有相同之处

  正确回答:之前曾经在XX网络科技公司做过网络管理员这个职位,在工作中我充分利用所学知识,对公司的网络环境进行了净化,同时对公司的网络进行了安全加固……,在工作当我学到了很多的东西,甚至包括之前我所没有接触过的方面

  12. “谈谈你的家庭情况” 【思路】:1、 况对于了解应聘者的性格、观念、心态等有一定的作用,这是招聘单位问该问题的主要原因。 2、 简单地罗列家庭人口。 3、宜强调温馨和睦的家庭氛围。 4、 宜强调父母对自己教育的重视。 5、 宜强调各位家庭成员的良好状况。 6、 宜强调家庭成员对自己工作的支持。 7、 宜强调自己对家庭的责任感。

  正确回答:我父亲是位铁路工作者,母亲是做会计工作的。我从他们身上学到了严谨还有细心,………..

  13.你的朋友如何评价你 【思路】:这个问题是招聘方考察你的个人表达能力和认识能力的问题。你可以突出自己的一些优点,但是不要说得过于直白,同时要强调自己的能力比较适合做***工作,这里技巧很重要。同时说话要机智,也可以适当加些小幽默,显示你天生有与人交际的能力和创新能力,这对于***工作来说是很重要的。

  14.你最崇拜的人是谁 【思路】:对于这个问题,最好是说一个本行业的知名人士,你能从这个知名人士身上能学到什么东西

  15.你的专业课程中,哪些课程最让你感兴趣了? 【思路】你在学校最喜欢的科目一般而言也是你最学有所长、学有所得的科目。如果你觉得这个科目能对你当前应聘的工作产生积极作用,就抓住机会予以强调,作深入细致阐述,否则不妨淡化处理。在回答在校期间最不喜欢的科目时注意把握如下原则:第一,要懂得如何避重就轻;第二,假如你不喜欢的科目恰好与所应聘的工作密切相关,那你就需要巧妙改变主题;第三,要有幽默感。关于这类问题,面试应届大学毕业生和毕业研究生时主考官常会提起,因此,如果你是一个青年学生,在面试前就不妨琢磨琢磨,用心准备一番。

  16.我想知道,你在大学时遇到的最有挑战性的事情是什么?为什么你认为那件事对你最具有挑战性? 【思路】:面试者往往通过这个问题考查你的信心,信心是应聘者在面试者面前是否具有吸引力的一个非常重要的因素。有信心的人往往在办事、说话和判断中,以及在对自己的能力方面表现出强烈的信心。有信心的人善于对他们自己的决定和行为的后果承担责任。此外,他们往往把冲突视为是发展的机会

  17.介绍一下你的课外活动。你为什么愿意从事那些课外活动?通过那些课外活动,你都学了些什么? 【思路】:这个问题考查是你的业余倾向,还有你的学习能力,切记不要说一些娱乐的业余课外活动,选一些积极向上的比如:学习小组、志愿者等等,其次叙述你在其中体现了哪些人身价值,从中锻炼了哪方面,积累了哪些经验,学到了什么! 18.大学时,你为什么选择。。专业? 【思路】:如果你应聘得岗位和你所学得专业对口的话很容易回答,但如果和所学专业不对口得话,回答起来就要慎重看了。比如说是父母选的或是其他同学都添的这个专业等,但上学后觉得不适合自己,在休完本专业的情况下,努力学习适合自己的动画行业,毕业之后又到专门的培训机构学习,并有项目经验等

  如果你是有工作经验者:
  19.之前的薪水有多少?

  正确回答:在以前的单位,差不多一个月薪水是在1500到2000之间吧 ,因为奖金是看绩效考核的,不过我一般情况的薪水都在1800到1900之间。

  【思路】:之前的薪水可据实以报,切勿写不实数据,因为有些公司会去查证,万一得知所言不实,就可能会丧失工作机会。

  20.希望待遇多少? 正确回答:刚到公司,还是按照公司的岗位工资我就满意了,后期我想咱们单位应该是能力与待遇成正比的 ,对吗?

  【思路】:常被问到希望待遇时,最好能诚实回答,考虑年龄、经验及能力等客观条件来决定,对某些企业而言,这也是评论应征者的能力及经验的参考,一般要求比以前一工作薪水高出百分之十是合理范围。

  21. 除了本公司外,还应征了哪些公司? 正确回答:这是我离职以来应聘的第一家单位,之前还没有过求职

  【思路】: 这是相当多公司会问的问题,其用意是要概略知道应征者的求职志向,所以这并非绝对是负面答案,就算不便说出公司名称,也应回答“销售同种产品的公司”,如果应征的其他公司是不同业界,容易让人产生无法信任的感觉。

  22.何时可以到职? 正确回答:如果被录用的话,可按公司规定时间上班

  【思路】: 大多数企业会关心就职时间,最好是回答“如果被录用的话,可按公司规定时间上班,”但如果还未辞去上一个工作、上班时间又太近,似乎有些强人所难,因为交接至少要一个月的时间,应进一步说明原因,录取公司应该会通融的

  正确回答:如果被录用的话,可按公司规定时间上班

  23.你了解我们单位吗 正确回答:之前我在网络上以及朋友的口中了解过咱们单位,咱们单位在网络行业是石家庄的巨头,………

  【思路】 :只要毕业生提前做些准备,从多种途径收集用人单位的信息,这样的问题就比较容易回答,如果答非所问或张口结舌,场面可能会很尴尬

  24.希望工作地点在哪里? 正确回答:至于工作地点,我会按照单位的需求而定

  【思路】: 这是有数个分公司及营业场所的企业会问到的问题,如果有希望的工作地点,可据实说出来,如:现在虽然希望在某营业场所工作,但也可有“将来还是希望能到总公司服务”之类的要求。

  25.你为什么应聘我们单位 正确回答:有两点,一是我对这个行业很感兴趣,二是咱们单位在这个行业里属于领军式企业,对我吸引力很打。

  【思路】:毕业生可以从该单位在行业中的地位、自己的兴趣、能力和日后的发展前景等角度回答此问题

  26.你找工作最重要的考虑因素是什么 正确回答:我觉得应该是发展和提升,再者就是公司的培训,每个人都有自己的职业规划和定位,二我的规划就是在这段时间内无论是外职业生涯还是内职业生涯,我希望都有所发展。

  【思路】:可以结合你正在应聘的工作,侧重谈你的兴趣、你对于取得事业上的成就的渴望、施展你的才能的可能性、未来的发展前景等方面来谈

  27.你认为你适合什么样的工作 正确回答:我大学的专业是计算机应用,主要学习的是网络方面的知识,在我毕业以后我又进行了网络工程师系统的培训,所以我觉得在网络方面的工作我会做的很好

  【思路】:结合你的长处或者专业背景回答,也许单位是结合未来的工作安排来提问,也许只是一般性地了解你对自己的评价,不要说不知道,也不要说什么都行

  28 “你为什么选择我们公司?” 正确回答:在几家应聘单位中我之所以选择咱们公司,是因为看重咱们公司在业内的影响力以及咱们公司的实力

  【思路】:1、 面试官试图从中了解你求职的动机、愿望以及对此项工作的态度。 2、 建议从行业、企业和岗位这三个角度来回答。 3、 参考答案——“我十分看好贵公司所在的行业,我认为贵公司十分重视人才,而且这项工作很适合我,相信自己一定能做好。”

  29“您在前一家公司的离职原因是什么?” 正确回答:我离职是因为这家公司倒闭。我在公司工作了三年多,有较深的感情。从去年始,由于市场形势突变,公司的局面急转直下。到眼下这一步我觉得很遗憾,但还要面对显示,重新寻找能发挥我能力的舞台。

  【思路】:1、 最重要的是:应聘者要使找招聘单位相信,应聘者在过往的单位的“离职原因”在此家招聘单位里不存在。 2、避免把“离职原因”说得太详细、太具体。 3、不能掺杂主观的负面感受,如“太幸苦”、“人际关系复杂”、“管理太混乱”、“公司不重视人才”、“公司排斥我们某某的员工”等。 4、但也不能躲闪、回避,如“想换换环境”、“个人原因”等。 5、 不能涉及自己负面的人格特征,如不诚实、懒惰、缺乏责任感、不随和等。 6、尽量使解释的理由为应聘者个人形象添彩。 7、同一个面试问题并非只有一个答案,而同一个答案并不是在任何面试场合都有效,关键在于应聘者掌握了规律后,对面试的具体情况进行把握,有意识地揣摩面试官提出问题的心理背景,然后投其所好。

  30.如果我录用你,你认为你在这份工作上会待多久呢? 正确回答:

  A.这问题可能要等我工作一段时间后,才能比较具体地回答。

  B.一份工作至少要做3年、5年,才能学习到精华的部分。

  C.这个问题蛮难回答的,可能要看当时的情形。

  D.至少2年,2年后我计划再出国深造。

  【思路】:选择B最多,A次之。B的回答能充分显示出你的稳定性,不过,这必须配合你的履历表上,之前的工作是否也有一致性。A的回答则是非常实际,有些人事主管因为欣赏应征者的坦诚,能够接受这样的回答。

  31. 如果你离开现职,你认为你的老板会有什么反应? 正确回答

  A.很震惊,因为老板对我算是很信赖,我就如同他的左右手一样。

  B.还好吧,他大概心里也有数,反正公司现在也不忙。

  C.他大概习惯了,反正他手下的人来来去去已是司空见惯。

  D.我想他一定会生气地破口大骂,他是一个相当情绪化的人。

  【思路】:最理想的回答是A。面谈者想借此了解你和前(现)任主管的相处情形,以及你在主管心目中的地位如何?

  32. 你为什么还没找到合适的职位呢? 正确回答:我是最近刚刚离职

  【思路】:别怕告诉他们你可能会有的聘请,千万不要说“我上一次面试弄得一塌糊涂……”。指出这是你第一次面试。

  33.除了工资,还有什么福利最吸引你? 正确回答:对于我来说就是咱们公司的培训。

  【思路】:尽可能诚实,如果你做足了功课,你就知道他们会提供什么,回答尽可能和他们提供的相配。如果你觉得自己该得到更多,也可以多要一点

  34.你会为公司服务多久? 正确回答:只要公司与我双方都觉得我在公司运营中发挥作用,在不断成长成熟,在公司实现预期目标中作出贡献,我乐意为公司效力。

  【思路】: 把公司的发展与你个人发展结合到一起来说这个问题

  35. 你愿意到另外一个城市定居吗? 正确回答:我宁愿留在这里,不过可能的话我会考虑一下。

  【思路】: 尽管在某些初次面试中,你也许会被问到许多像这种能代表你利益的问题。尽管这样的问题对一个初次面试的人来说不公平,回答不好的话,你也许什么都得不到,甚至还会失去所有的东西。假如你在初次面试时被突然地问到这样的问题,只需说些如“当然有可能”或者“我愿意考虑一下”之类的话。后来,如果你得到了这份工作,你会知道具体的工作条件,然后决定你是否愿意接受这个职位。记住,在提供工作阶段,你有大部分的谈判权利,而且雇主也许会很愿意为你提供你所需要的东西。如果那些不成问题,你也许会想说明一下,经过重新考虑,你已决定了不迁往别处,但是你想让雇主知道可以考虑把你安排在其他的在将来开放的职位上。

  36.你为什么对我们的工作职位感兴趣?

  【思路】: 1、 面试官试图从中了解你求职的动机、愿望以及对此项工作的态度。 2、 建议从行业、企业和岗位这三个角度来回答。 3、 参考答案——“我十分看好贵公司所在的行业,我认为贵公司十分重视人才,而且这项工作很适合我,相信自己一定能做好。”

  37.“对 这项工作,你有哪些可预见的困难?”

  【思路】: 1、 不宜直接说出具体的困难,否则可能令对方怀疑应聘者不行。 2、 可以尝试迂回战术,说出应聘者对困难所持有的态度——“工作中出现一些困难是正常的,也是难免的,但是只要有坚忍不拔的毅力、良好的合作精神以及事前周密而充分的准备,任何困难都是可以克服的。”

  38.你能否胜任?

  【思路】: 1、 应聘者最好站在招聘单位的角度来回答。 2、 招聘单位一般会录用这样的应聘者:基本符合条件、对这份工作感兴趣、有足够的信心。 3、 如“我符合贵公司的招聘条件,凭我目前掌握的技能、高度的责任感和良好的饿适应能力及学习能力 ,完全能胜任这份工作。我十分希望能为贵 公司服务,如果贵公司给我这个机会,我一定能成为贵公司的栋梁!

  39.如果MSRA公司和另一家公司同时给你Office,你怎么办?

  【思路】:面试官试图从中了解你求职的动机、愿望以及对此项工作的态度。一般大家都会以公司名气和工资高低作为取舍依据,你如果这样回答:“我会把企业文化、公司发展前景、个人在公司的发展、工作部门、职位、将来的顶头上司和团队成员是什么样的人等因素进行综合分析比较做出结论,决定我的舍取。” 面试官将对你刮目相看。

  40.未来工作中,你想避免些什么?为什么?

  【思路】:一:避免出错,尤其是刚开始,慢点没关系,因为开始不熟悉没人怪你,可是你为了追求速度而错误百出就坏了,给人留下老出错的印象后,一有问题大家都会想到你,很痛苦。

  二:避免受欺负,新人都会觉得刚来要和同事处理好关系,受欺负也会忍气吞声,错!既然明知道这个人是欺负你,你就要反击,决不示弱!不是你的错硬要怪你的人得罪就得罪,别人心理有数你这样的反击到底对否,不会对你有坏印象,反而会懂得尊重你。

  三:不会说话就少说,打招呼不知道说些什么没关系,但是看见了一定要热情,有礼貌,哪怕只是微笑一下。

  41.讲述一些对你的发展贡献最大的事件或事情。请说说你从那些些事件或事故中学到了什么,并且是怎样把所学的知识应用到后来的实际工作中的?

  【思路】:这里你所要讲的事情是你遇到的比较积极的事情,比如你看了一位专业成功人士的个人传记,从他的身上懂得了怎么刻苦学习、为人处事、和其他同事的关系以及对工作的狂热,从而运用到自身,把他的经验运用到自己的工作当中,少走了很多弯路,提高了工作效率。

  42.从你的前任工作中,你所学到的最有意义的两到三件事是什么?

  【思路】:你这里要说的就是工作心得或是工作经验,比如使你工作效率提高的例子

  注意现在开始是技术题了

  阿里篇:

  1.问题:如何实现一个高效的单向链表逆序输出?

  出题人:阿里巴巴出题专家:昀龙/阿里云弹性人工智能负责人

  参考答案:下面是其中一种写法,也可以有不同的写法,比如递归等。供参考。

  typedef struct node{
  int data;
  struct node* next;
  node(int d):data(d), next(NULL){}
  }node;
  void reverse(node* head)
  {
  if(head == NULL){
  return;
  }
  node* pleft = NULL;
  node* pcurrent = head;
  node* pright = head->next;
  while(pright){
  pcurrent->next = pleft;
  node *ptemp = pright->next;
  pright->next = pcurrent;
  pleft = pcurrent;
  pcurrent = pright;
  pright = ptemp;
  }
  while(pcurrent != NULL){
  cout<< pcurrent->data << "\t";
  pcurrent = pcurrent->next;
  }
  }
  class Solution<T> {
  public void reverse(ListNode<T> head) {
  if (head == null || head.next == null) {
  return ;
  }
  ListNode<T> currentNode = head;
  Stack<ListNode<T>> stack = new Stack<>();
  while (currentNode != null) {
  stack.push(currentNode);
  ListNode<T> tempNode = currentNode.next;
  currentNode.next = null; // 断开连接
  currentNode = tempNode;
  }

  head = stack.pop();
  currentNode = head;

  while (!stack.isEmpty()) {
  currentNode.next = stack.pop();
  currentNode = currentNode.next;
  }
  }
  }
  class ListNode<T>{
  T val;
  public ListNode(T val) {
  this.val = val;
  }
  ListNode<T> next;
  }
  2.题目:已知 sqrt (2)约等于 1.414,要求不用数学库,求 sqrt (2)精确到小数点后 10 位。

  出题人:——阿里巴巴出题专家:文景/阿里云 CDN 资深技术专家

  参考答案:

  * 考察点

  基础算法的灵活应用能力(二分法学过数据结构的同学都知道,但不一定往这个方向考虑;如果学过数值计算的同学,应该还要能想到牛顿迭代法并解释清楚)
  退出条件设计


  二分法

  1. 已知 sqrt(2)约等于 1.414,那么就可以在(1.4, 1.5)区间做二分

  查找,如: a) high=>1.5 b) low=>1.4 c) mid => (high+low)/2=1.45 d) 1.45*1.45>2 ? high=>1.45 : low => 1.45 e) 循环到 c)

  2. 退出条件

  a) 前后两次的差值的绝对值<=0.0000000001, 则可退出

  const double EPSILON = 0.0000000001;
  double sqrt2() {
  double low = 1.4, high = 1.5;
  double mid = (low + high) / 2;
  while (high - low > EPSILON) {
  if (mid * mid > 2) {
  high = mid;
  } else {
  low = mid;
  }
  mid = (high + low) / 2;
  }
  return mid;
  }


  牛顿迭代法

  1.牛顿迭代法的公式为:

  xn+1 = xn-f(xn)/f'(xn)

  对于本题,需要求解的问题为:f(x)=x2-2 的零点

  EPSILON = 0.1 ** 10
  def newton(x):
  if abs(x ** 2 - 2) > EPSILON:
  return newton(x - (x ** 2 - 2) / (2 * x))
  else:
  return x


  百度篇:

  1.题目:找出数组中出现次数超过一半的数,现在有一个数组,已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数。

  出题人:阿里巴巴新零售技术质量部

  参考答案:

  遍历数组的同时用Object来储存每个元素出现的个数,每次遍历都跟max比较

  参考代码:

  const arr =[1,2,3,4,5,6,7,8,89,9,9,9,9,99];
  const maxNumObj =(arr)=>{
  return arr.reduce((obj,cur)=>{
  if(!obj['max']){
  obj['max']=arr[0];
  }
  obj[cur] = ++obj[cur]||1;
  if(obj[cur]>obj['max']){
  obj['max'] = obj[cur]
  }
  return obj;
  },{})['max'];
  }
  2.题目: 找出被修改过的数字

  出题人:阿里巴巴新零售技术质量部

  参考答案:

  emmm假设背景是寻找数组中被修改的数字或者元素,我使用代理的方式来监听数组中元素的变化,并将变化的最后数值和次数储存在额外空间中

  参考代码:

  const arr =[1,2,3,4,5,6,7,8,89,9,9,9,9,99];
  const saveModifyNum={
  }
  const watchNumChangeProxy=new Proxy(arr,{
  set:function(target,key,value){
  let {count} = Reflect.get(saveModifyNum,target[key])||{count:0,value};
  ++count;
  return Reflect.set(saveModifyNum,target[key],{
  count,
  value
  });
  }
  })
  watchNumChangeProxy[0]=2;
  watchNumChangeProxy[0]=3;
  watchNumChangeProxy[0]=4;
  //{ '1': { count: 3, value: 4 } }


  由于篇幅限制,就不写那么多了。

猜你喜欢

转载自www.cnblogs.com/monkey7788/p/11862919.html