#算法的乐趣

React的diff算法

React的diff算法主要是两个Tree的比较。传统的Treediff算法复杂度是O(n^3),React是算法通过一些策略将复杂度将为O(n).1.优化策略1.网页中的DOM跨层级移动的特别少,可以忽略不计2.相同类型的组件生成相似的树形结构,不同类型的组件生成不同的树形结构3.同一层级的节点,可以通过唯一id来区...
代码星球 ·2020-06-29

轮盘赌算法

如果已知A类对象生成概率为P(A),B类对象生成概率为P(B),C类对象···,K类对象,他们的概率总和为1,问如何在A~K中随机生成一个对象正如下面的轮盘中奖项 所有奖项的概率和为1,转一次轮盘总会抽中其中的一个奖项,问一次轮盘转动产生的奖项是哪个javascrip...
代码星球 ·2020-06-28

洗牌算法-shuffle

数组洗牌,最近直接的想法是从数组随机取出一个元素,放到另一个数组中,但是这样取出的元素会有重复,必须采取一定的方法保证:1.元素不能重复2.元素被抽取的概率相等,即随机性数组洗牌经典算法有两种:1.Fisher-YatesShuffle(复杂度(n^2))数组的删除以及新的copy数组都是耗费时间和空间的。javasc...
代码星球 ·2020-06-28

字符串匹配之Sunday算法

Sunday算法不像KMP算法那么复杂,但是效率又比较高,在KMP之上,下面简单介绍Sunday算法及其实现。Sunday算法由DanielM.Sunday在1990年提出,它的思想跟BM算法很相似:只不过Sunday算法是从前往后匹配,在匹配失败时关注的是文本串中参加匹配的最末位字符的下一位字符。如果该字符没有在模式...

中文转换为完整拼音算法原理分析

最近由于项目需要,对简体中文转拼音的算法作了一些了解,然而在google找到的大多是获得简体中文拼音首字母的算法,好不容易让我找到了一个sunrise.spell的类,专门用于中文转完整拼音,觉得的确做得不错,于是对它的算法作了一些分析,总的来说觉得还是比较简单的,拿出来与大家分享。   ...

VUE温习:内存泄漏、Vue.$set、key作用与虚拟diff算法

一、内存泄漏1、指令绑定了事件,却没有解绑事件,容易产生内存泄漏。(曾经遇到过的案例)2、v-if指令产生内存泄漏,比如v-if删除了父级元素,却没有删除父级元素里的dom片段3、跳转到别的路由,却没有删除产生的dom片段。需要在beforeDestroy()钩子里注销三方插件,销毁定时器等二、Vue.$set1、vu...

图解vue中 v-for 的 :key 的作用,虚拟dom Diff算法

  其实不只是vue,react中在执行列表渲染时也会要求给每个组件添加上key这个属性。  要解释key的作用,不得不先介绍一下虚拟DOM的Diff算法了。  我们知道,vue和react都实现了一套虚拟DOM,使我们可以不直接操作DOM元素,只操作数据便可以重新渲染页面。而隐藏在背后的原理便是其高效的Diff算法。...
代码星球 ·2020-06-27

数论算法 剩余系相关 学习笔记 (基础回顾,(ex)CRT,(ex)lucas,(ex)BSGS,原根与指标入门,高次剩余,Miller_Rabin+Pollard_Rho)

注:转载本文须标明出处。原文链接https://www.cnblogs.com/zhouzhendong/p/Number-theory.html  1. 基础回顾  2. 中国剩余定理(CRT)及其扩展  3. 卢卡斯定理(lucas)及其扩展  4. 大步小步算法(BSGS) 及其扩展  5. 原根与指标...

2018牛客网暑假ACM多校训练赛(第十场)H Rikka with Ants 类欧几里德算法

原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round10-H.html  有两只蚂蚁在一个二维平面上走。一开始,他们都在点$(1,0)$的位置。  Rikka布置了三条规定:  1. 第一只蚂蚁不能走过直线$y=cfrac{a}{b}...

BZOJ1433 [ZJOI2009]假期的宿舍 二分图匹配 匈牙利算法

原文链接http://www.cnblogs.com/zhouzhendong/p/8372785.html  我们理一理题目。  在校的学生,有自己的床,还可以睡朋友的床。  离校的学生,不占床。  外来的学生,只能睡朋友的床。  然后就是一个裸的二分图匹配了。#include<cstring>#incl...

HDU1507 Uncle Tom's Inherited Land* 二分图匹配 匈牙利算法 黑白染色

原文链接http://www.cnblogs.com/zhouzhendong/p/8254062.html  有一个n*m的棋盘,有些点是废的。  现在让你用1*2的矩形覆盖所有的不废的点,并且不重叠,问最多可以覆盖多少个1*2的矩形,输出方案,有SPJ。  输入描述:  多组数据,每组首先两个数n,m(如果n和m为...

POJ1469 COURSES 二分图匹配 匈牙利算法

原文链接http://www.cnblogs.com/zhouzhendong/p/8232649.html  在一个大矩阵中,有一些障碍点。  现在让你用1*2的小矩形覆盖非障碍点,要求不覆盖到障碍点并且不重复覆盖,问是否可以覆盖所有非障碍点。  本题几乎是裸题。  首先注意读入的表示障碍点的二元组(x,y)中y是行...

HDU4185 Oil Skimming 二分图匹配 匈牙利算法

原文链接http://www.cnblogs.com/zhouzhendong/p/8231146.html  每次恰好覆盖相邻的两个#,不能重复,求最大覆盖次数。(引用大佬的http://blog.csdn.net/u011721440/article/details/38144339)  我们对于每两个相邻#的建边...

POJ3041 Asteroids 二分图匹配 匈牙利算法

原文链接http://www.cnblogs.com/zhouzhendong/p/8229200.html  有一个n*n的矩阵,有些点是障碍物。  现在每次可以炸掉某一行或者某一列的障碍物,问最少炸几次。  对于点(x,y),我们建立一条x<->y+n的边,然后发现这是一个二分图。  我们只需要求最小点...

ACM,算法

ACM,算法描述最近Topcoder的XD遇到了一个难题,倘若一个数的三次方的后三位是111,他把这样的数称为小光棍数。他已经知道了第一个小光棍数是471,471的三次方是104487111,现在他想知道第m(m<=10000000000)个小光棍数是多少? 输入有多组测试数据。第一行一个整数n,表示有...
代码星球 ·2020-06-21
首页上一页...5859606162...下一页尾页