java 输入 一道java面试题,20亿数字的文本排序,如何取前100?
一道java面试题,20亿数字的文本排序,如何取前100?
因为这是一个Java问题,所以这是典型的TOPK问题。首先取前100个数字构建一个最小堆,然后依次从堆的顶部插入剩余的数字,同时调整堆。堆中最后100个元素就是结果。空间复杂度是k,时间复杂度是nlogk
这个问题对任何语言都是一样的。从一门语言开始,我们首先需要了解语言语法(可以使用),然后了解标准库(可以使用)。有了这两个步骤和对其他语言的一点了解,我们就可以开始了。我们学校招收的很多毕业生都已经转学了1-2个月,你可以带着皮带走到这个阶段。
剩下的是第三步,通过项目或产品的实践加深对技术和业务的理解。在这个阶段,我们通常依靠自学、谷歌和理解。两三年后,我们可以发现,有些人对技术和业务的了解很深(老手),有些人还很肤浅。这段时间通常是另一个跳槽阶段。在这个时候,不同的人的工资水平会有很大的差异。
总而言之,程序员最重要的是持续学习(第三阶段)。事实上,IT行业是一个需要不断学习的行业(因为技术更新太快)。初出茅庐,我们都有同样的基础和能力。这一差距将在2-3年后出现。如果你是贫穷的一方,那就意味着你工作不够努力。
最后,Java主要用于服务器。由于其出色的内存管理,它阻止了许多程序员的能力差异(能力较弱的程序员可以编写较少的糟糕系统),并且适合于长期的服务器项目(如web和其他非UI应用程序)。
虽然也有优秀的UI库(如SWT)和优秀的桌面应用程序(如idea、eclipse和netbean),但是桌面软件应用程序仍然很少,需要带JRE,所以负担相对较大。
对于刚刚学习过零基础的java技术的学生来说,如何在java的短程序中快速学习和掌握java技术是非常重要的,掌握正确的学习方法是很重要的。
1、众所周知,无论你学什么样的知识和技能,语言都是最基本的部分。语言基础就像是高层建筑的基础。如果地基不稳定,整个建筑物就会倒塌。如果你不懂基本知识,你就不知道你做的是否正确。当然,您不必掌握所有的基础知识,但是您需要了解Java的一些基本概念。
2、开始写一些小程序吧
如果你已经掌握了一些Java的基本知识,你应该试着学习一些相对简单的程序来测试自己,看看自己掌握的哪些方面不好,这样才能不断的提高和提高自己,让自己掌握这些知识。
3、编写一些桌面程序
通过这一步的学习,你可以对任何Java面试充满信心。因为现在企业需要的不仅是懂理论知识的人才,更是能掌握实践技能的人才。如果你能写一些桌面程序,让面试官看到你身上的亮点,那么面试成功的概率就会更大。事实上,对于零基础的学生来说,学习一门新语言真的很难。这时,对于我们自学的前端合作伙伴来说,我们需要找一些好书或者相关的视频作为学习的参考。当然,我们也可以找一些志同道合的朋友一起学习,不断交流相关的学习方法和经验。
当然,除了上述方法,我们还可以参加可靠的java培训组织。上思谷教育的JavaEE分布式开发课程培训采用高质量的全程面对面教学模式,让学生随时发现和解决问题。同时,更专业的就业老师为您面试、就业保驾护航。如果您想学习Java并快速提高,欢迎您参加JavaEE分布式开发课程培训。
零基础想学习java,应该从哪学起?
先读一本书(在21天内学习Java),然后在MOOCS等网站从头到尾阅读更多系统教程
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。