Origin of Ray

一起探索互联网的秘密

算法学习的路线,个人体验,首先是学习基本的数据结构和算法,通晓每种数据结构适合存储什么类型的信息,然后了解通用的算法思想,比如贪心,双指针,单调栈,回溯等。第三步就是学会抽象,或者说等价,将具体的问题等价为简单的问题,然后用通用的算法去解决。第四步,就是有的算法只存在理论上的可行性,实际由于各种原因,如何去工程上的近似,或者有些问题不存在理论上的解法,只存在工程上的解法。

基本的数据结构,其实就是栈,队列,数组,链表,哈希,树,图之类的,其他的复杂数据结构都是再基本数据结构基础上组合出来的,比如跳表。

这次我们就从几个贪心算法体验问题等价能够带来的问题简化。

阅读全文 »

最近在尝试做一个文字转语音的功能,使用第三方的接口进行文字转语音,接口传入文字,返回音频文件,然后自动播放,这个流程在PC运行正常的,但是到了手机端,发现没有效果,因为手机端的浏览器默认不需要audio自动播放,需要明显的用户操作,比如点击才可以。

阅读全文 »

状态驱动是编程时的一种很重要的算法思想,能够帮助我们梳理和解决很多的问题,可以说很多的计算机算法,做的事情都是将程序从一个状态转移成为另一个状态。

阅读全文 »

本次博客正式进入源码的解析部分,我们主要分析源码中的以下几个部分:

  • 如何进行配置合并与生成,即resolveConfig部分
  • 插件的调用机制,即pluginContainer
  • 模块之间的引用图谱部分,即moduleGraph
  • vite的热更新模块内,即hmr
  • vite的依赖打包优化部分,即optimizeDeps
阅读全文 »

我们在迁移到vite的时候,可能会遇到一个情况,就是旧的项目中如果采用webpack,可能会将css文件直接当作css moudle去使用,但是这一点在vite中是不支持的,想要当作css module去引入,就必须以module.css作为扩展名,在研究了以下vite的源码之后,我们可以通过插件来实现这个无缝切换,并且实现css的热更新。

阅读全文 »

今天的leetcode每日一题是一道关于差分数组的困难题,其实说是困难题目,但是如果之前知道差分数组的思想,这个题目也不难,甚至是非常明显的差分数组,只不过使用最基础的差分数组的写法在空间上比较浪费,所以需要稍微改良一下。

阅读全文 »

这个算法是图论中比较经典的最大流问题的算法,使用场景有很多,比如在互联网中已知中间链路每一段的最大流量,如何最快速地把数据从一个节点传递到另一个节点。

阅读全文 »
0%