[笔记] Master The Coding Interview – 1

章节连结

工程师的面试中,不免俗的会遇见用各种型式来考你的算法功力。这篇是 Udemy 上的知名课程 – Master the Coding Interview 的进修心得。目标是在这两边的精进后,可以自在的解决 LeetCode 上的问题。
coding interview


课程相关资讯

[连结]:https://www.udemy.com/course/master-the-coding-interview-data-structures-algorithms/

课程对应章节:22~47

请注意:本系列文章为个人对应课程的消化吸收后,所整理出来的内容。换言之,并不一定会包含全部的课程内容,也有可能会添加其他资源来说明。


内容

环境设置

为了操作上的方便,可以使用 Repl.it 或是 Glot.io 来进行操作。如果你是 JavaScript 的使用者,也可以直接使用浏览器的 Console 工具

背景知识

1. 怎样的 Code 会被认为是高品质的?
Readable (阅读性) 和 Scalable (可扩展性)。前者为让他人容易读懂,而后者则是跟 BigO 有关联。当你的数量级越大时,你的程式码能不能正常运作,还是会让使用者等待时间过就造成错误。

2. BigO
复杂度的表格,可以上 Big O CheatSheet 的网站查看,下方是该网页截图:
Coding,codingForInterview,master the coding interview当 BigO 的横轴为项目总数(n),纵轴为操作次数。常作为代表 O(n) 为一条线型函数,操作的最大次数跟 n 有关。一般而言,我们会以 O(n) 作为标准,尽量避免产出大于 O(n) 的函式。
真实的 Big O 值,你需要一行行计算,但你当操作次数越发增加时,其函式的系数是可以被忽略的。
Big O 的值所呈现的,是代表整个函式执行最坏的情况。真实情况通常会在最好跟最坏之间。

3. 时间和空间复杂度

除了易读之外,内存的使用量关乎 Space Complexity 而速度则是跟 Time Complexity 有关。理想情况下,自然是两者都越有效率越好。

4. 空间复杂度计算
命名新变量、物件需要占空间


小结

其实跟判断函数极限值是相同道理的:去掉常数、次方高是主要影响者

O(1) Constant- no loops
O(log N) Logarithmic- usually searching algorithms have log n if they are sorted (Binary Search)
O(n) Linear- for loops, while loops through n items
O(n log(n)) Log Liniear- usually sorting operations
O(n^2) Quadratic-  Two nested loops
O(2^n) Exponential- recursive algorithms that solves a problem of size N
O(n!) Factorial- you are adding a loop for every element

Iterating through half a collection is still O(n)
Two separate collections: O(a * b)


相关文章

★全文分享★  [笔记] Master The Coding Interview – 16
[笔记] Master The Coding Interview – 16
这篇是 Udemy 上的知名课程 – Master the Coding Interview 的部分进修心得。这篇对应的内容是“Data Structures: Tree”关于树的第四部分简介。课程相关资讯[连结]:https://www.udemy.com/course/master-the-coding-interview-d
★全文分享★  [笔记] Master The Coding Interview – 15
[笔记] Master The Coding Interview – 15
这篇是 Udemy 上的知名课程 – Master the Coding Interview 的部分进修心得。这篇对应的内容是“Data Structures: Tree”关于树的第三部分简介。课程相关资讯[连结]:https://www.udemy.com/course/master-the-coding-interview-d
★全文分享★  [笔记] Master The Coding Interview – 14
[笔记] Master The Coding Interview – 14
这篇是 Udemy 上的知名课程 – Master the Coding Interview 的部分进修心得。这篇对应的内容是“Data Structures: Tree”关于树的第二部分简介。课程相关资讯[连结]:https://www.udemy.com/course/master-the-coding-interview-d
★全文分享★  [笔记] Master The Coding Interview – 13
[笔记] Master The Coding Interview – 13
这篇是 Udemy 上的知名课程 – Master the Coding Interview 的部分进修心得。这篇对应的内容是“Data Structures: Tree”关于树的第一部分简介。课程相关资讯[连结]:https://www.udemy.com/course/master-the-coding-interview-d
★全文分享★  [笔记] Master The Coding Interview – 12
[笔记] Master The Coding Interview – 12
这篇是 Udemy 上的知名课程 – Master the Coding Interview 的部分进修心得。这篇对应的内容是“Data Structures: Stacks + Queues”关于堆叠和序列的第三部分简介。课程相关资讯[连结]:https://www.udemy.com/course/master
★全文分享★  [笔记] Master The Coding Interview – 11
[笔记] Master The Coding Interview – 11
这篇是 Udemy 上的知名课程 – Master the Coding Interview 的部分进修心得。这篇对应的内容是“Data Structures: Stacks + Queues”关于堆叠和序列的第二部分简介。课程相关资讯[连结]:https://www.udemy.com/course/master
★全文分享★  [笔记] Master The Coding Interview – 10
[笔记] Master The Coding Interview – 10
这篇是 Udemy 上的知名课程 – Master the Coding Interview 的部分进修心得。这篇对应的内容是“Data Structures: Stacks + Queues”关于堆叠和序列的第一部分简介。课程相关资讯[连结]:https://www.udemy.com/course/master
★全文分享★  [笔记] Master The Coding Interview – 9
[笔记] Master The Coding Interview – 9
这篇是 Udemy 上的知名课程 – Master the Coding Interview 的部分进修心得。这篇对应的内容是“Data Structures: Linked Lists”关于链结阵列的第三部分简介。课程相关资讯[连结]:https://www.udemy.com/course/master-the-c
★全文分享★  [笔记] Master The Coding Interview – 8
[笔记] Master The Coding Interview – 8
这篇是 Udemy 上的知名课程 – Master the Coding Interview 的部分进修心得。这篇对应的内容是“Data Structures: Linked Lists”关于链结阵列的第二部分简介。课程相关资讯[连结]:https://www.udemy.com/course/master-the-c
★全文分享★  [笔记] Master The Coding Interview – 7
[笔记] Master The Coding Interview – 7
这篇是 Udemy 上的知名课程 – Master the Coding Interview 的部分进修心得。这篇对应的内容是“Data Structures: Linked Lists”关于链结阵列的第一部分简介。课程相关资讯[连结]:https://www.udemy.com/course/master-the-c
★全文分享★  [笔记] Master The Coding Interview – 6
[笔记] Master The Coding Interview – 6
这篇是 Udemy 上的知名课程 – Master the Coding Interview 的部分进修心得。这篇对应的内容是“Data Structures: Hash Tables”关于阵列的第二部分简介。课程相关资讯[连结]:https://www.udemy.com/course/master-the-coding-i
★全文分享★  [笔记] Master The Coding Interview – 5
[笔记] Master The Coding Interview – 5
这篇是 Udemy 上的知名课程 – Master the Coding Interview 的部分进修心得。这篇对应的内容是“Data Structures: Hash Tables”关于阵列的第一部分简介。课程相关资讯[连结]:https://www.udemy.com/course/master-the-coding-i
★全文分享★  [笔记] Master The Coding Interview – 4
[笔记] Master The Coding Interview – 4
这篇是 Udemy 上的知名课程 – Master the Coding Interview 的部分进修心得。这篇对应的内容是“Data Structures: Array”关于阵列的第二部分简介。课程相关资讯[连结]:https://www.udemy.com/course/master-the-coding-intervi
★全文分享★  [笔记] Master The Coding Interview – 3
[笔记] Master The Coding Interview – 3
这篇是 Udemy 上的知名课程 – Master the Coding Interview 的部分进修心得。这篇对应的内容是“Data Structures: Array”关于阵列的简介。课程相关资讯[连结]:https://www.udemy.com/course/master-the-coding-interview-data-stru
★全文分享★  [笔记] Master The Coding Interview – 2
[笔记] Master The Coding Interview – 2
这篇是 Udemy 上的知名课程 – Master the Coding Interview 的部分进修心得。这篇对应的内容是“Data Structure”资料结构的简介。课程相关资讯[连结]:https://www.udemy.com/course/master-the-coding-interview-data-structures-a
按赞加入粉丝团

延伸阅读