编程思维 一道java面试题,20亿数字的文本排序,如何取前100?
一道java面试题,20亿数字的文本排序,如何取前100?
这是TOPK的经典问题。首先取前100个数字构建一个最小堆,然后依次从堆的顶部插入剩余的数字,同时调整堆。堆中最后100个元素就是结果。空间复杂度为K,时间复杂度为nlogk
Java程序员需要掌握不同工作级别和开发场景下的不同知识结构,因此要根据具体工作做好面试准备。
Java面试通常集中在三个方面,一是项目经验;二是知识结构;三是应聘者的学习能力,所以我们可以从这三个方面做准备。项目经验往往是程序员面试中最受关注的内容之一,尤其是对于主要的程序员职位。对于初级程序员来说,如果他们没有什么项目经验,他们可以对项目(案例)本身做一些深入的描述。对于面试官来说,项目经验是程序员能力的基本体现,通过项目经验也可以展现一些行业经验,因此对项目经验的描述会对面试结果产生很大的影响。
知识结构是工作能力的基本保证。Java语言是一种全场景编程语言,因此Java语言的知识结构比较丰富。如果你面试一个web开发职位,通常需要系统地了解三个方面的开发知识:第一,前端开发知识;第二,后端开发知识,涉及框架开发(Spring系列);第三,数据库开发知识。在面试之前,你可以把重点放在这些方面的知识上,你就可以了解整个。
面试的最后一部分是学习能力。如果面试对象是初级java开发职位,那么学习能力也是面试官比较关注的内容,比如他自己教过什么技术,取得了多少成绩。这些内容会引起面试官的注意,特别是在一些难度相对较高、内容较多的领域。最后,如果你有一个特定的java编程基础,并希望在短时间内通过面试,最好的办法是尽快完成一个全面的开发案例。
请问如何短时间突击java通过面试?
有面试问题和答案。著名企业的面试问题很多。
同时,每天都会发表技术性文章,不仅让自己知道如何做面试题,更能真正了解技术。在最后的一对一面试中也会有所帮助。以下是一些文章的列表
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。