瓶子君前端进阶算法营首周总结

6,114 阅读4分钟

我是瓶子君,在3月31号发起了一个「前端进阶算法」活动,从 0 到 1 构建完整的数据结构与算法体系。到现在已经过去了一周了,在这一周里,我们做了:

一、两篇系列文章:

二、四道算法题:

第一题:图解leetcode:合并两个有序数组

给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 num1 成为一个有序数组。

说明:

初始化 nums1nums2 的元素数量分别为 mn 。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n )来保存 nums2 中的元素。

示例:

输入:
nums1 = [1,2,3,0,0,0], m = 3
nums2 = [2,5,6],       n = 3

输出: [1,2,2,3,5,6]

答案: github.com/sisterAn/Ja…

第二题:腾讯算法题:数组扁平化、去重、排序

已知如下数组:var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];

编写一个程序将数组扁平化去并除其中重复部分数据,最终得到一个升序且不重复的数组

答案: github.com/sisterAn/Ja…

第三题:字节&leetcode:两数之和

给定一个整数数组 nums 和一个目标值 target ,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

示例:

给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

答案: github.com/sisterAn/Ja…

第四题:leetcode:给定两个数组,编写一个函数来计算它们的交集

给定两个数组,编写一个函数来计算它们的交集。

示例 1:

输入: nums1 = [1,2,2,1], nums2 = [2,2]
输出: [2]

示例 2:

输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出: [9,4]

说明:

输出结果中的每个元素一定是唯一的。 我们可以不考虑输出结果的顺序。

这是今日新题,欢迎在 github.com/sisterAn/Ja… 解答,明天将给出瓶子君的解答

👏👏👏👏👏

三、为什么要学算法?

前端还要学算法?必须学,而且必须狠狠地学⛽️。现在去大厂面试,数据结构与算法已经是标配,要是不会的话,那基本与大厂无缘了。

作为一名前端,虽然在平常开发中很少写算法,但当我们需要深入前端框架、开发语言、开源库时,懂算法将大大提高我们看源码的能力。例如 :

  • virtual-dom diff 算法做了一些约定,后将原先 O(n^3^) 的时间复杂度降到了O(n) ,核心原理就是一个树的深度优先搜索
  • babel 这些就是一些编译原理的 parser 生成抽象语法树的知识,再将抽象语法树进行转换操作生成文件
  • 浏览器的 history,底层可以使用栈来实现
  • webpack 中利用 tree-shaking 优化
  • v8 中的调用栈、消息队列等等

这些就大量使用了算法,看懂了就能更好的了解它们的性能,更高效的解决问题,提升我们的代码质量与思维视野,进阶到更高 Level,赚更多钱💰💰💰。

所以说,学算法是每个前端进阶必备!⛽️⛽️⛽️

现在市面上的算法资料很多,但针对前端的算法资料少之又少,所以,这里我整理了一份适用于前端的数据结构与算法系列,希望能帮助你从0到1构建完整的数据结构与算法体系。

本系列预估一共有40多篇,现已经更新了前两篇。想要更多更快的学习本系列,可以关注公众号「前端瓶子君」和我的 Github(github.com/sisterAn/Ja…),欢迎在 issus 上提出遇到的算法题,瓶子君会不定期解答。😊

四、认识更多的前端道友,一起进阶前端开发

前端算法集训营第一期免费开营啦🎉🎉🎉,免费哟!

在这里,你可以和志同道合的前端朋友们(500+)一起进阶前端算法,从0到1构建完整的数据结构与算法体系。

在这里,瓶子君不仅介绍算法,还将算法与前端各个领域进行结合,包括浏览器、HTTP、V8、React、Vue源码等。

在这里,你可以每天学习一道大厂算法题(阿里、腾讯、百度、字节等等)或 leetcode,瓶子君都会在第二天解答哟!

更多福利等你解锁🔓🔓🔓!

扫码加入【前端算法交流群交流群】,若二维码失效后,可在公众号「前端瓶子君」内回复「算法」即时加入😊😊😊

欢迎专注「前端瓶子君」,这里不仅有算法还有各种前端进阶必备好文!👍👍👍

最后,生活不仅有工作、学习,还有诗和远方,在提升自身的同时,好好的享受人生。