算法和数据结构面试准备与问题-第1部分

算法和数据结构面试准备与问题-第1部分
寻找新毕业生的第一份工作(来源: Sparks Group

许多新毕业生想敲响硅谷的大公司的大门,例如Facebook ,亚马逊,苹果,Netflix,谷歌和微软。 但是,为技术面试做准备是一个漫长而繁琐的过程。 我本人也是一名SW工程师,曾经去过那里,但是仍然有一天,我将需要再次面对这个过程。 因此,我决定写一些文章来提醒自己(和您)尽可能顺利地完成此过程。

有用的资源

算法(第1部分)算法(第2部分)是两个最著名的免费在线算法课程,以防您需要刷新内存。

我还会推荐其他两本准备进行技术面试的人阅读:

  1. Adnan Aziz撰写的Elements Programming Interviews ,有300多个编程问题和解决方案,并且附带一张CD,其中包含您可以在IDE上练习的问题和解决方案的电子版本。
算法和数据结构面试准备与问题-第1部分
  1. **代码面试 盖尔·拉克曼·麦克道威尔 Gayle Laakmann McDowell) 其中也有很多编程问题和解决方案。
算法和数据结构面试准备与问题-第1部分

Prereq —复杂性时空

在深入探讨一些基本数据结构之前,我想谈谈另一个基本先决条件-复杂性分析。

重要的是要了解方法调用的时间复杂性,尤其是对数据结构执行操作的方法。 但是,为什么我们要关心呢? 当您开始在行业中工作时,复杂性分析将帮助您事先解决可伸缩性问题,做出更好的决策,找出效率和权衡,选择用于项目的数据结构,然后找到最佳解决方案。 最重要的是,这是一个常见的采访话题

关于空间复杂度,我们正在谈论辅助空间与空间复杂度。 辅助空间是执行算法所需的额外内存。 空间复杂度是执行算法所需的存储器,该算法包括输入大小以及辅助空间。 当要求您进行空间复杂性分析时,通常人们会询问辅助空间(不考虑输入大小)。 但是, 您有责任询问访问员是否也对输入大小感兴趣

一个讨论时间复杂度和空间复杂度的简单示例:

 function  printAndSaveAllNames (array) { // Input size n
// instantiate an empty array, constant space size
var result = [];
// instantiate a counter, constant space size
for ( var i =0; i < array. length ; i++) {
// push n items into the array, linear space size, linear time
result.push("Name: " + array[i]);
}
}
// Time: n * 1 = n, Linear time complexity: O(n)
// Auxiliary space : n + 2,
// Space complexity = input + auxiliary space = n + n + 2 = 2n + 2
// Drop coefficients and lower order terms ...
// Linear space complexity: O(n)

常见的Big-O订单(和示例)

对于渐近符号,我们将Big-O用作上限,将Big-Ω(omega)用作下限,将Big-θ(theta)用作紧密界限。

●常数O(1)-与输入大小无关

○在哈希中查找键

○算术运算

○分配值

○更新数组中现有元素的值

●线性O(n)-与输入大小成比例增长

○在链接列表或数组中查找项目

○遍历元素集合(for循环,while循环等)

●二次O(n ^ 2)-与输入大小的平方成正比增长

○嵌套循环

○遍历二维数组

○插入排序

●对数O(logn)-对数增长到输入大小

○二进制搜索排序数组中的值

○在二进制搜索树中插入值

●拟线性O(nlogn)-比较排序算法常用

○快速排序

○合并排序

○堆排序

●多项式O(n ^ c)-c是常数

○深层嵌套循环

●指数O(c ^ n)-c是常数

○多种递归算法

●阶乘O(n!)-与输入大小的阶乘成比例增长

○寻找排列

算法和数据结构面试准备与问题-第1部分

在我的下一篇文章中 (我没想到已经花了2个小时来写这篇文章……),我将开始谈论数组和字符串的数据结构,并希望涵盖一些常见的面试问题。

你走之前 -

没有比在Medium( Victor Lin )上追随我更好的支持我的方法了。 让我知道我应该写更多!

您是否知道按下????按钮最多可以放弃50????? 如果您再次喜欢本文,请尝试一下!

https://upscri.be/hackernoon/

From: https://hackernoon.com/algorithms-and-data-structures-interview-preparison-questions-part-1-a23aec17daaf