java怎么将前端的数据存到关联的表中_Java程序员最可能被考到的14个面试题

609b85d27b9a067032d13080039b480d.png

1. 如何只扫描一遍就找到位于一个链表正中间的元素?

这是最受欢迎的算法题之一,经常在电话面试中被问到。很多程序员会想,要知道链表的长度,就要先扫描一遍链表,然后在第二遍中取其正中的元素。所以被要求只扫描一遍就解决问题的时候他们就会很困惑。要解决这个问题,你要维护两个指针。一个每次往下走一个结点,而另一个每次走两个结点。那么当走的快的指针到达链表末尾时,另一个指针就正好指在链表的正中间。

2. 如何确定一个链表中是否存在环?

这跟第一题有点类似。同样地维护两个指针,分别以每步一个结点和每步两个结点的速度走,那么如果当某一步结束以后两个指针指向同一个结点,就说明我们找到了一个环。

3. 如何只扫描一遍就找到一个链表倒数第三个元素?

这也是一个很经典的链表题,也可以用两个指针的方法来解决。我们让第一个指针先走,当它走出三步以后再让第二个指针开始走。那么当第一个指针到达链表的末尾时,第二个指针就正好指向链表中的倒数第三个元素。

4. 如何找到一个含有 1~100 的数组中唯一出现两次的元素?

这是一个挺简单的算法题。你可以把数组里面所有元素加起来,再减去 1~100 的和,就能得到那个重复的元素。当然你也可以暴力地去比对每一对元素,不过这样的复杂度是 O(N^2)。

5. 如何在 Java 中反转一个字符串?

这是我最喜欢的问题之一。因为 String 是编程中最重要的类型之一,所以在技术面试中你会遇到许多跟字符串有关的问题。Java 和其他编程语言都有许多不同的方式可以反转一个字符串,所以面试官往往会禁止你使用某些特性,比如 reverse() 和 StringBuffer。之后他还可能会问如何用递归来反转字符串。

6. 如何用冒泡排序对数组进行排序?

在技术面试中我总是会问一些关于搜索和排序的问题。冒泡排序是最简单的排序算法之一,但如果你让一个候选人现场写冒泡排序,这能够很好地衡量他的编程技能。

7. 栈和队列这两种数据结构之间的区别是什么?

这是一个经典的数据结构问题,应该没有人不知道的吧?不管怎么说,最主要的区别在于栈是后进先出(LIFO),而队列是先进先出(FIFO)的。

8. 如何找到一个数组中所有重复出现的元素?

这个问题有时会作为第 4 题的后续出现。解决这个问题的一种途径是使用哈希表。遍历整个数组并将元素和出现次数存到哈希表中。最后你就可以统计那些出现超过一次的元素作为答案。在 Java 中,当一个元素已经在 HashMap 中时,调用 get(index) 就可以得到对应的值,否则会返回 Null。这个性质可以用来插入和更新 HashMap 中的值。

9. 单向链表和双向链表之间有什么差别?

这又是一个经常在电话面试中被问到的数据结构题。单向链表和双向链表之间主要的差别在于它们的可遍历性不同。在单向链表中,每个结点只有指向下一个结点的指针,而没有指向上一个结点的指针,所以你就不能倒回去遍历。而双向链表的结点则维护了两个指针,往两个方向都可以遍历。

10. 如何打印斐波那契数列?

这是一个在面试中经常出现的编程问题。斐波那契数列是这样的一种数列:它的每一项都等于前两项之和,例如:1,1,2,3,5,8,13,21。面试官往往会关心这两件事情:一个能够返回斐波那契数列第 n 项的函数,以及如何在 Java 中用递归解决这个问题。虽然这个问题很简单,但递归的部分可能会困惑一些初学者。

11. 如何判断一个整数是不是回文数?

跟前一题一样,这也不是一个算法题,但在面试中的出现率也很高。当一个数反过来写还是等于本身时,我们称之为回文数。面试官往往会要求你不使用 Java API 和第三方库来解这个问题。当然,问题本身不难。你只要会用 / 和 % 就能解决它。/ 能去掉最后一位,而 % 能得到最后一位。比如 1234 / 10 会得到 123,而 1234 % 10 则能得到 4。

12. 什么是二叉查找树?

这是一个关于树的数据结构问题。二叉查找树满足一些特殊的性质,比如说每个结点的左子树中的值都要比自身小,而右子树中的值都要比自身大,等等。除了定义以外,面试官还可能让你在 Java 中实现一棵二叉树并询问关于树的遍历的问题。比如中序遍历、先序遍历和后序遍历之间的区别。

13. 如何分别用递归和非递归方式倒置一个链表?

这是一个非常好的数据结构题,所以我希望你自己去思考。当然你也能轻易地在网上找到许多解法。

14. 如何用 Java 实现一个栈?

你可以用数组或者链表来实现栈。这个问题期望你实现栈所提供的标准接口,也就是 push()和 pop()。这两个操作都应该发生在栈的顶部。当然,如果你能实现 contains() 和 isEmpty() 这样的功能就更好了。顺便一提,你可以利用 JDK 提供的 java.util.Stack 来学习怎么实现一个栈。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/305312.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常见的几种最优化方法

阅读目录1. 梯度下降法(Gradient Descent)2. 牛顿法和拟牛顿法(Newtons method & Quasi-Newton Methods)3. 共轭梯度法(Conjugate Gradient)4. 启发式优化方法我们每个人都会在我们的生活或者工作中遇到…

专业的软件安装包可以这样做!

C/S客户端开发完成,需要将程序交付给用户,直接压缩发给用户是可以的(只是有点不专业),如果能有一个比较好看的安装界面,那档次就不一样了。本文介绍怎么使用Adanced Installer 17.9 制作专业的Windows 客户…

IT人喝酒,不同岗位不同姿势

这是Boss们的常用套路,频频举杯,给大家鼓劲加油,但是自己不喝。有的销售,业绩好,酒品也好,不管和自己人喝酒,还是和客户喝酒,都是一副舍我其谁的霸气!这是某些销售的写照…

国产CPU群雄逐鹿谁主沉浮

当下,国内(桌面、服务器)CPU与外商有较大差距,除了海光在性能上可能具有一拼之力外,其它国产CPU在商业市场上面对英特尔、AMD基本不具备竞争力,因而只能在篱笆墙内的市场角逐。而为了能够进入篱笆墙内的市场…

蒙特卡罗方法入门

本文通过五个例子,介绍蒙特卡罗方法(Monte Carlo Method)。一、概述蒙特卡罗方法是一种计算方法。原理是通过大量随机样本,去了解一个系统,进而得到所要计算的值。它非常强大和灵活,又相当简单易懂&#xf…

面向业务的微服务消息总线

源宝导读:移动PaaS项目的异步场景中,随着订阅主题数的增加,会出现开发维护成本高、管理难度大等问题,本文将分享如何通过构建面向业务的微服务消息总线应对这些问题。一、背景面向业务的消息总线本质上是对消息队列进行二次封装&a…

模拟时钟中断的产生及设计一个对时钟中断事件进行处理的模拟程序_操作系统基础6-支持操作系统的最基本的硬件-中断...

无论是桌面PC操作系统还是嵌入式都是多任务的操作系统,而很遗憾,处理器往往是单个的,即便在硬件成本逐渐下降,而硬件配置直线上升的今天,PC机的核心可能已经达到4核心,8核心&#xf…

XMLhttp学习应用

Client.htm页面代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns"http://www.w3.org/1999/xhtml"><head><title>客…

机器学习没有想象中的那么难

文末彩蛋&#xff0c;不容错过&#xff01;背景从去年的AlphaGo到今年人工智能首次写进政府工作报告&#xff0c;人工智能正在席卷全球&#xff0c;引发第4次工业革命&#xff0c;而AI的核心技术是机器学习和深度学习。目前&#xff0c;机器学习已广泛应用于数据挖掘、计算机视…

Docker查看应用的实际内存

前言 我们把应用部署到Docker里面之后&#xff0c;有什么办法查看这个应用占用了多少内存呢&#xff1f;docker本身提供了一个命令让我们可以直接看到当前时间所有容易占用的情况。docker stats --no-stream从上面来看&#xff0c;这几个应用用的内存加起来已经是将近12G了。但…

如何动态的生成某种类型的集合呢_知乎画报」的移动端动态化工程实践

本文基于移动端动态化方案在知乎原生推广落地页「知乎画报」上的实践经验&#xff0c;对该方案技术升级过程中的思考以及技术关键细节做了详尽的解读。商业化是互联网公司发展的重要阶段&#xff0c;App 端的商业广告业务对移动端动态化能力的需求很强烈&#xff0c;一方面需要…

任正非致歉华为前程序员:回来吧,公司错了

近几日&#xff0c;因着任正非连续签发邮件&#xff0c;无处不在热议华为&#xff0c;其中与所有的技术人可谓密切相关。除了一员工因说真话&#xff0c;被晋升两级&#xff0c;根据其自愿选择工作岗位及地点&#xff0c;并由无线网络产品线总裁邓泰华保护其不受打击报复之外&a…

Asp.Net Core之Identity应用(下篇)

一、前言在上篇中简单介绍了 Asp.Net Core 自带的 Identity,一个负责对用户的身份进行认证的框架&#xff0c;当我们按需选择这个框架作为管理和存储我们应用中的用户账号数据的时候&#xff0c;就会添加到自己的项目当中去。这个时候&#xff0c;默认情况我们会使用自带的数据…

如果每一种语言都对应一种女生,你会喜欢哪一个?

这几天调试都很顺利&#xff0c;今天很意外的不要加班&#xff0c;哥几个看着窗外还是白天&#xff0c;还有点不适应。没想到哥几个突然开始YY&#xff1a;如果每种语言都对应一种女生&#xff0c;你会喜欢哪一个&#xff1f;程序猿寂寞起来&#xff0c;我自己都害怕。碍于人数…

asp.net core安全事项(下)

越权越权是非常严重的安全漏洞&#xff0c;通常状态是开发人员对请求的限制逻辑不严格导致的。如果系统中有角色的概念&#xff0c;越权可能出现不同角色间的越权和同角色间的越权。相同角色&#xff1a;A用户&#xff0c;B用户是相同的角色。A用户和B用户都可以调用 /photo/{i…

[导入]php 安全基础 第八章 共享主机 文件系统浏览

8.4. 文件系统浏览 除了能在共享服务器上读取任意文件之外&#xff0c;攻击者还能建立一个可以浏览文件系统的脚本。由于你的大多数敏感文件不会保存在网站主目录下&#xff0c;此类脚本一般用于找到你的源文件的所在位置。请看下例&#xff1a; <pre> <?php if (iss…

程序员的项目周期(表情包版)

0. 需求审评会议进行中1. 开发阶段进行中….2. 代码复查阶段3. 测试阶段….4. 需求突然要改….5. 项目上线

[导入]php 安全基础 附录B. 函数

附录B. 函数 在我写作本书的时候&#xff0c;http://php.net/quickref.php列出了共3917个函数&#xff0c;其中包括一些类似函数的语法结构&#xff0c;在此我不准备把它们从函数中区分开来&#xff0c;而是把它作为函数看待。 由于函数数量很大&#xff0c;一一说明它们的正确…

6段Python代码刻画深度学习历史:从最小二乘法到深度神经网络

最小二乘法深度学习的一切都起源于这个数学片段&#xff08;我把它用Python 写了出来&#xff09;&#xff1a;这一方法是 1805 年巴黎数学家阿德利昂玛利埃勒让德首次提出的&#xff08;1805&#xff0c;Legendre&#xff09;&#xff0c;勒让德建立了许多重要的定理&#xff…