开课吧数据结构与算法

有很多计算机科学技术专业的毕业生和程序员申请在Uber和Netflix这样的初创公司、谷歌和阿里巴巴这样的大公司以及Infosys或Luxsoft等以服务为基础的公司从事编程、编码和软件开发工作,但他们中的许多人都不知道,当你申请这些公司的职位时,你会遇到什么样的编程面试问题。

在这篇文章中,我将分享一些常见的来自不同经验水平程序员的编程面试问题,他们是从刚大学毕业的人到有一到两年经验的程序员。

编程面试主要由数据结构问题和算法问题以及一些逻辑问题组成,比如,如何在不使用临时变量的情况下交换两个整数?

我认为把编程面试问题分成不同的主题领域是有帮助的。我在访谈中经常看到的主题领域是数组、链表、字符串、二叉树,以及来自算法的问题(例如字符串算法、快速排序或基数排序等排序算法),这就是你将在本文中找到的内容。

这些面试题不能保证你会被问到这些编程、数据结构和算法问题,但它们会让你对在真正的编程工作面试中可能遇到的问题有足够的了解。

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

顺便说一句,如果你对基本的数据结构和算法没有充分的知识,或者从没有接触过它们,那么尝试这些问题就没有意义了。

在这种情况下,你应该学习一门很好的课程,比如Robert Horvick的算法和数据结构第1部分和第2部分,以更新你的DS和算法技能。

前50大算法和编码面试问题

下面是我列出的一些最常见的编程面试问题:

1.数组编码面试问题

数组是最基本的数据结构,它将元素存储在一个连续的内存位置。这也是面试官们热衷的话题之一,在任何一次编程面试中,你都会听到很多关于数组的问题,比如将数组中元素位置颠倒,对数组进行排序,或者搜索数组上的元素。

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

为了创建更小或更大的数组,需要创建一个新数组并将所有元素从旧数组拷贝到新数组。

解决基于数组的问题的关键是对数组数据结构以及基本的编程构造函数(如循环、递归和基本运算符)要有很好的了解。

以下是一些热门的基于数组的编程面试问题:

1.如何在一个1到100的整数数组中找到丢失的数字?(方法)

2.如何在给定的整数数组中找到重复的数字? (方法)

3.如何在未排序整数数组中找到最大值和最小值? (方法)

4.如何找到数组所有和等于一个给定数的数对? (方法)

5.如果一个数组包含多重复制,那么如何找到重复的数字? (方法)

6.在Java中如何从给定数组中删除多重复制? (方法)

7.如何使用快速排序算法对整数数组进行排序? (方法)

8.如何从数组中删除多重复制? (方法)

9.如何在Java中对数组进行反向操作? (方法)

10.如何在不使用任何库的情况下从数组中删除多重复制? (方法)

这些问题不仅可以帮助你提高解决问题的能力,还可以提高你对数组数据结构的认识。

如果你需要更高级的基于数组的问题,那么你还可以看到编程面试训练营:算法+数据结构,一个专门为面试准备的关于算法的Bootcamp风格课程,以获得一个技术巨头公司的工作,如谷歌,微软,苹果,Facebook等。

猜你喜欢

转载自blog.csdn.net/lsttwo/article/details/111658081
今日推荐