图像功劳— 编写编码面试:编码问题的模式
大家好,我一直在分享许多编码面试问题
积极寻找工作的程序员,特别是对于初学者
刚毕业但没有实际工作的计算机工程师
经验。
过去,我分享了一些数据结构问题 , 字符串算法问题 ,以及一些有用的在线课程 ,以为编程工作面试做准备。今天,我将分享一些来自编码面试的常见问题清单 。
数据结构是任何编程求职面试中最重要的部分之一,通常是选择或拒绝候选人的原因,这就是
为什么实践这些基于数据结构的问题将使您在竞争者中占优势。
它还将使您成为更好的程序员,因为您可以开发逻辑和
解决这些问题的编码意识,这对您有很大帮助
编程生涯。
什么是链表?
链表是补充数组数据结构的另一种常见数据结构。 与数组类似,它也是线性数据结构,
以线性方式存储元素。
但是,与数组不同的是,它不会将它们存储在连续的位置。 取而代之的是,它们分散在内存中随处可见的内存中,内存通过节点相互连接。
链接列表不过是节点列表,其中每个节点都包含存储的值和下一个节点的地址。
由于这种结构, 在链接列表中添加和删除元素很容易 ,因为您只需要更改链接而不是创建数组即可 ,但是搜索很困难,并且通常需要O(n)时间才能在列表中找到元素。单链表。
本文提供有关数组和链表数据结构之间差异的更多信息。
它也以单链表的形式出现,使您可以在一个方向(向前或向后)移动。 双链表 ,使您可以双向浏览(向前和向后); 最后是圆形的链表 ,形成一个圆。
如何解决链表编码问题?
为了解决基于链表的问题,重要的递归知识很重要,因为链表是递归数据结构 。
如果从链接列表中选取一个节点,则其余数据结构为
仍然是一个链表,因此,许多链表问题都有
比迭代解决方案更简单的递归解决方案 。
还可以使用分而治之的技术来解决这些问题,该技术将问题分解为子问题,直到您可以解决它们为止。
例如,要反向链接列表,请断开链接列表,直到找到
只有一个节点,到那时,您知道如何反向链接
一个节点的列表,只不过是同一节点而已。
它与递归非常相似,实际上,最小的子问题是
可以解决成为递归解决方案的基本情况。
顺便说一句,没有解决这些基于链表的编码问题,如果
您没有数据结构的基本知识,或者您不必
最近刷新它们。 那样的话,我建议你先走
通过良好的数据结构和算法课程或书来修改概念。
如果您需要建议,以下是我一些久经考验的资源来深入学习数据结构和算法:
- 数据结构和算法:面向Java开发人员的Java深度学习
- 适用于Python爱好者的Python中的算法和数据结构
- JavaScript算法和数据结构大师班 由Colt Steele为JavaScript程序员编写
- 为精通 C / C ++的人员使用C和C ++掌握数据结构和算法
- Java中的数据结构:面试复习 刷新Java中重要的数据结构和算法概念。
而且,如果您更喜欢书籍,那没有什么比Thomas H. Cormen的算法介绍更好的了。 这是有关数据结构和算法的最全面的书籍之一。
链接列表中的常见问题解答
不用浪费您的时间,以下是Coding访谈中最常见和最受欢迎的链表访谈问题。 我已尽可能链接到该解决方案,但是我建议您首先尝试自己解决问题,这将使您受益,因为您会思考和学习。 解决问题或尝试后卡住后,可以查看解决方案并向他们学习。
- 一口气如何找到单链表的中间元素? ( 解决方案 )
- 如何检查给定的链表是否包含循环? 您如何找到循环的起点? ( 解决方案 )
- 您如何反向链接列表? ( 解决方案 )
- 如何在不递归的情况下反转单链接列表? ( 解决方案 )
- 如何在未排序的链表中删除重复的节点? ( 解决方案 )
- 您如何找到单链表的长度? ( 解决方案 )
- 您如何在单链列表中从头找到第三个节点? ( 解决方案 )
- 如何使用Stack查找两个链表的总和? ( 解决方案 )
- 您如何在适当的位置反向链接列表? (解)
- 如何在链接列表的中间添加元素? (解)
- 如何在Java中对链接列表进行排序? ( 解决方案 )
- 数组和链表有什么区别? ( 回答 )
- 如何从链表末尾删除第N个节点? ( 解决方案 )
- 如何合并两个排序的链表? (解决方案)如何将排序列表转换为二叉搜索树? ( 解决方案 )
- 给定一个链表和一个值 x ,对其进行分区,以使所有小于 x的 节点 位于 大于或等于 x的 节点之前 。 ( 解决方案 )
- 如何从排序的链表中删除重复项? ( 解决方案 )
- 如何找到两个单链表的交点开始的节点。 ( 解决方案 )
- 如何检查给定的链表是否是回文? (解)
- 如何从与给定值匹配的整数链接列表中删除所有元素? (解)
这些问题也将帮助您提高解决问题的能力
以提高您对链表数据结构的了解。
如果您无法解决这些链表编码问题,那么我
建议您通过以下方式刷新数据结构和算法技能
数据结构和算法:使用Java深入学习课程。
如果这些问题还不够,那么您也可以查看以下列表 30个链接列表面试问题,以获取更多练习问题。
采访采访的有用资源
如果您需要一些有用的资源来更好地进行编程和
编码求职面试,这里有一些在线课程和书籍
应该签出:
现在您已准备好进行编码面试
这些是数据结构和算法之外的一些最常见问题,可帮助您在面试中表现出色。
我还在博客上分享了很多有关数据结构和算法的问题,因此,如果您真的很感兴趣,可以随时去那里搜索。
这些共同的编码 , 数据结构和算法的问题s为你所需要知道的与任何公司,或大或小的成功面试,编程工作的任何级别的人。
如果您正在寻找2018年的编程或软件开发工作,则可以从此编码问题清单开始准备。
此列表提供了准备的好主题,还有助于评估您的
准备找出您的优势和劣势领域。
良好的数据结构和算法知识对于成功进行面试编码至关重要,因此您应该将重点放在大部分时间上
注意。
您可能喜欢的其他文章
每个程序员都应该阅读的10本算法书籍
适用于Java开发人员的前5本书数据结构和算法
来自访谈的20多个字符串编码问题
来自访谈的50多种数据结构和算法问题
来自编码面试的30多个基于数组的问题
从0到1:Java中的数据结构和算法
数据结构和算法分析—求职面试
准备技术编程/编码面试的10本书
结束语
谢谢,您到了本文的结尾……祝您编程采访顺利! 当然,这并非易事,但是在练习之后,您距离成功和您一直想要的工作仅一步之遥
这些问题。
如果您喜欢这篇文章,请与您的朋友和同事分享,不要忘记在Twitter上关注javinpaul !