Origin of Ray

一起探索互联网的秘密

上一篇博客讲了二分图匹配的匈牙利算法,但是匈牙利算法中的每个匹配边权重都是一样的,如果我们在匹配边权重不同的情况下得到最佳匹配,那么就需要用到KM算法。

阅读全文 »

接触到这个算法是因为看到了一个题目,叫做素数伴侣。就是说给你你串数字,从中选择两个数字相加,如果他们的和是个素数,那么这一对叫做素数伴侣。然后我们需要找到这串数字中最多能找到多少对素数伴侣。

这个问题的解法首先是把数字分为两部分,一部分是偶数,一部分是奇数,因为两个偶数相加或者两个奇数相加一定还是偶数,不可能是素数。

于是这个问题就变成了分别从偶数中选一个,然后从奇数中选一个,看看最多选出多少对相加为素数。这个问题就用到了匈牙利算法。

匈牙利算法主要用于解决一些与二分图匹配有关的问题,所以我们先来了解一下二分图。

阅读全文 »

之前一篇博客讲过React的更新过程,不过在那个博客中,任务调度使用的是浏览器的requestIdleCallback,而实际上React使用的自己实现的一个任务调度器,我们这次就开分析一下它的源码,以及React为什么要自己实现任务调度器。

本文基于React仓库中的16.18.6分支进行解读。

阅读全文 »

最近在leetcode上遇到了几个问题都是采用二分法来解决的,总结了一下其中的规律,简单来说,如果是要从有界区间中寻找符合条件的最大值或者最小值,可以考虑采用二分法,不过不是基础的二分法,而是不断寻找左侧边界或者右侧边界的二分法。

阅读全文 »

这几天遇到个问题,就是在vue-router嵌套子路由的时候,如果深层的router-view组件没有声明key,且路由配置中的component是函数式的组件,就会导致在router.push的时候无法更新。

对于函数式组件和函数式编程,需要了记得可以我之前的相关博客;

本文主要是分析vue-router的源码,vue-router的源码主要是两部分,第一部分是做路由匹配,第二部分是做路由跳转的,本文先主要关注第一部分

阅读全文 »

函数式编程和函数式组件是现在开发的一个趋势,过去一直在用,但是没有从概念上理解,本文就把二者放在一起总结一下并进行一定的对比。

函数式编程是一种编程范式,而函数式组件是这种范式下的一种产物。

阅读全文 »
0%