加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码网 (https://www.900php.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

Java和Python的算法和数据结构面试问题

发布时间:2019-06-10 17:53:47 所属栏目:优化 来源:爱码农
导读:副标题#e# 有很多计算机科学专业毕业生和程序员在Uber和Netflix等公司申请编程,编码和软件开发职位。亚马逊,微软和谷歌等大型组织; 和Infosys或Luxsoft等基于服务的公司。但是,当你申请这些公司的工作时,他们中的许多人都不知道会有什么样的编程面试问
副标题[/!--empirenews.page--]

有很多计算机科学专业毕业生和程序员在Uber和Netflix等公司申请编程,编码和软件开发职位。亚马逊,微软和谷歌等大型组织; 和Infosys或Luxsoft等基于服务的公司。但是,当你申请这些公司的工作时,他们中的许多人都不知道会有什么样的编程面试问题。

在本文中,我将分享一些常见问题的算法和数据结构面试问题,这些问题来自不同层次经验的程序员,从刚从大学毕业的人到具有一到两年经验的程序员。

编码访谈主要包括数据结构和基于算法的问题以及一些逻辑问题,例如“如何在不使用临时变量的情况下交换两个整数?”

我认为将编码面试问题划分到不同的主题领域是有帮助的。我在访谈中经常看到的主题领域是数组,链表,字符串,二叉树,以及来自算法的问题(例如字符串算法,排序算法,如quicksort或radix排序,以及其他杂项),这就是什么你会在这篇文章中找到。

我们无法保证会向您询问这些编码或数据结构和算法问题,但它们会让您充分了解在实际编程工作面试中可能遇到的各种问题。

一旦你完成了这些问题,你应该有足够的信心参加任何面试。

顺便说一下,如果你没有足够的基本数据结构和算法知识,或者你没有多年触及它们,那么尝试这些问题毫无意义。

在这种情况下,你应该采用像算法和数据结构第1部分和第2部分这样的好的课程作者Robert Horvick来刷新你的DS和算法技能。

Java和Python的算法和数据结构面试问题

前50个算法和编程面试问题

没有任何进一步的麻烦,这里是我的编程工作面试中一些最常见的编码面试问题列表。我还为Java中的大多数问题共享了解决方案,但如果您是Python开发人员,则可以检查Python中的逻辑和实现。你也可以谷歌找到大多数问题的答案,因为它们很常见。

1.数组编码面试问题

数组是最基本的数据结构,它将元素存储在连续的内存位置。这也是采访者的一个主要话题,你会在任何编码访谈中听到很多关于数组的问题,例如反转数组,排序数组或搜索数组中的元素。

数组数据结构的主要优点是,如果您知道索引,它会提供快速的O(1)搜索,但是从数组中添加和删除元素的速度很慢,因为一旦创建了数组,就无法更改数组的大小。

要创建更短或更长的数组,您需要创建一个新数组并将所有元素从旧复制到新。

解决基于数组的问题的关键是熟悉 数组数据结构以及基本编程结构,如循环,递归和基本运算符。

以下是一些流行的基于数组的编码面试问题供您练习:

  1. 如何在给定的1到100的整数数组中找到缺失的数字?(解决方案)
  2. 如何在给定的整数数组上找到重复的数字?(解决方案)
  3. 如何在未排序的整数数组中找到最大和最小的数字?(解决方案)
  4. 你如何找到所有对的整数数组,其总和等于给定的数字?(解决方案)
  5. 如果数组包含多个重复项,如何在数组中找到重复的数字?(解决方案)
  6. 如何从Java中的给定数组中删除重复项?(解决方案)
  7. 如何使用quicksort算法对整数数组进行排序?(解决方案)
  8. 如何从阵列中删除重复项?(解决方案)
  9. 你如何在Java中反转数组?(解决方案)
  10. 如何在不使用任何库的情况下从数组中删除重复项?(解决方案)

这些问题不仅可以帮助您提高解决问题的能力,还可以提高您对阵列数据结构的了解。

如果您需要基于阵列的更高级的问题,那么您还可以看到编码面试训练营:算法+数据结构,算法的训练营风格课程,专门用于面试准备,以获得谷歌,微软,苹果等科技巨头的工作,Facebook等。

而且,如果您觉得10个问题还不够,而且您需要更多练习,那么您还可以查看30个阵列问题列表。

2.链接列表编程面试问题

甲链表是另一个常见的数据结构,它补充了阵列。与数组类似,它也是线性数据结构,并以线性方式存储元素。

但是,与数组不同,它不会将它们存储在连续的位置; 相反,它们分散在内存中,并使用节点相互连接。

链表是节点列表,其中每个节点包含存储的值和下一个节点的地址。

由于这种结构,在链表中添加和删除元素很容易,因为您只需要更改链接而不是创建数组,但搜索很困难,并且通常需要花费O(n)时间来查找元素。单链表。

此文章提供了在阵列和链表数据结构之间的区别的详细信息。

它还有各种类似链表,可以让你在一个方向上移动(向前或向后); 双向链表,允许您双向移动(向前和向后); 最后,圆形链表,形成一个圆圈。

为了解决基于链表的问题,良好的递归知识很重要,因为链表是递归数据结构。

如果从链接列表中获取一个节点,则剩余的数据结构仍然是链接列表,因此,许多链接列表问题具有比迭代解决方案更简单的递归解决方案。

以下是一些最常见和最受欢迎的链接列表面试问题及其解决方案:

  1. 如何在一次通过中找到单链表的中间元素?(解决方案)
  2. 如何检查给定链表是否包含循环?你如何找到循环的起始节点?(解决方案)
  3. 你如何扭转链表?(解决方案)
  4. 如何在没有递归的情况下反转单链表?(解决方案)
  5. 如何在未排序的链表中删除重复节点?(解决方案)
  6. 你如何找到单链表的长度?(解决方案)
  7. 如何在单链表中找到最后的第三个节点?(解决方案)
  8. 如何使用Stack找到两个链表的总和?(解决方案)

这些问题将帮助您提高解决问题的能力,并提高您对链表数据结构的了解。

如果您在解决这些链表编码问题时遇到问题,那么我建议您通过数据结构和算法:深入使用Java课程来刷新您的数据结构和算法技能。

您还可以查看30个链接列表面试问题列表, 了解更多练习题。

3.字符串编码面试问题

与数组和链表数据结构一起,字符串是编程工作访谈的另一个热门话题。我从未参加过编码面试,其中没有提出基于字符串的问题。

字符串的一个好处是,如果你知道数组,你可以很容易地解决基于字符串的问题,因为字符串只是一个字符数组。

因此,通过求解基于数组的编码问题所学到的所有技术也可用于解决字符串编程问题。

(编辑:源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读