LeetCode 23 Hard,K个链表归并
点击上方蓝字,和我一起学技术。链接https://leetcode.com/problems/merge-k-sorted-lists/难度Hard描述Mergeksortedlinkedlistsandreturnitasonesortedlist.Analyzeanddescribeitscom
LeetCode22 生成所有括号对
点击上方蓝字,和我一起学技术。链接https://leetcode.com/problems/generate-parentheses/难度Medium描述Givennpairsofparentheses,writeafunctiontogenerateallcombinationsofwell-f
大数据算法——布隆过滤器
点击上方蓝字,和我一起学技术。今天的文章和大家一起来学习大数据领域一个经常用到的算法——布隆过滤器。如果看过《数学之美》的同学对它应该并不陌生,它经常用在集合的判断上,在海量数据的场景当中用来快速地判断某个元素在不在一个庞大的集合当中。它的原理不难,但是设计非常巧妙,老实讲在看《数学之美》之前,我也
高等数学——复杂函数的求导方法
点击上方蓝字,和我一起学技术。上一篇文章我们复习了函数求导的定义和一些常见函数的导数,今天这篇文章我们回顾一下复杂函数的求导方法。先强调一下,今天的文章很重要,想要看懂机器学习各种公式推导,想要能够自己推一推各种公式,函数求导是基础中的基础,在算法这个领域,它比积分要重要得多。我们先来看第一种情况:
算法浅谈——归并算法求解逆序数
点击上方蓝字,和我一起学技术。在之前介绍线性代数行列式计算公式的时候,我们曾经介绍过逆序数:我们在列举出行列式的每一项之后,需要通过逆序数来确定这一项符号的正负性。如果有忘记的同学可以回到之前的文章当中复习一下:线性代数精华1——从行列式开始如果忘记呢,问题也不大,这个概念比较简单,我想大家很快就能
机器学习基础——梯度下降法
点击上方蓝字,和我一起学技术。在之前的文章当中,我们一起推导了线性回归的公式,今天我们继续来学习上次没有结束的内容。上次我们推导完了公式的时候,曾经说过由于有许多的问题,比如最主要的复杂度问题。随着样本和特征数量的增大,通过公式求解的时间会急剧增大,并且如果特征为空,还会出现公式无法计算的情况。所以
Python应用——优先队列与heapq
点击上方蓝字,和我一起学技术。今天的文章来介绍Python当中一个蛮有用的库——heapq。heapq的全写是heapqueue,是堆队列的意思。这里的堆和队列都是数据结构,在后序的文章当中我们会详细介绍,今天只介绍heapq的用法,如果不了解heap和queue原理的同学可以忽略,我们并不会深入太
LeetCode19 移除倒数第N个元素
点击上方蓝字,和我一起学技术。链接https://leetcode.com/problems/remove-nth-node-from-end-of-list难度Medium描述Givenalinkedlist,removethen-thnodefromtheendoflistandreturnit
LeetCode 18: 4 Sum 寻找4数和
点击上方蓝字,和我一起学技术。链接https://leetcode.com/problems/4sum/难度Medium描述Givenanarraynumsofnintegersandanintegertarget,arethereelementsa,b,c,anddinnumssuchthata+
分布式初探——判断因果关系的向量时钟算法
点击上方蓝字,和我一起学技术。今天的文章来聊聊向量时钟,在前文介绍分布式系统一致性的时候,曾经介绍过,在弱一致性模型当中会有一个因果性的问题。向量时钟算法正是设计出来解决因果关系问题的。我们来回顾一下因果问题,在实际日常的网页行为当中,部分行为存在因果关系。比方说知乎里面回答问题,显然得先有一个同学
高等数学——导数的定义和常见导数
点击上方蓝字,和我一起学技术。导数是微积分也是高数当中很重要的一个部分,不过很遗憾的是,和导数相关的部分很多同学都是高中的时候学的。经过了这么多年,可能都差不多还给老师了。所以今天的文章就一起来温习一下导数的相关知识,捡一捡之前忘记的内容。函数切线关于导数,最经典的解释可能就是切线模型了。以前高中的
算法浅谈——分治算法与归并、快速排序
点击上方蓝字,和我一起学技术。在之前的文章当中,我们通过海盗分金币问题详细讲解了递归方法。我们可以认为在递归的过程当中,我们通过函数自己调用自己,将大问题转化成了小问题,因此简化了编码以及建模。今天这篇文章呢,就正式和大家聊一聊将大问题简化成小问题的分治算法的经典使用场景——排序。排序算法排序算法有
机器学习基础——推导线性回归公式
点击上方蓝字,和我一起学技术。在之前的文章当中,我们介绍过了简单的朴素贝叶斯分类模型,介绍过最小二乘法,所以这期文章我们顺水推舟,来讲讲线性回归模型。线性回归的本质其实是一种统计学当中的回归分析方法,考察的是自变量和因变量之间的线性关联。后来也许是建模的过程和模型训练的方式和机器学习的理念比较接近,
线性代数精华——矩阵的特征值与特征向量
点击上方蓝字,和我一起学技术。今天和大家聊一个非常重要,在机器学习领域也广泛使用的一个概念——矩阵的特征值与特征向量。我们先来看它的定义,定义本身很简单,假设我们有一个n阶的矩阵A以及一个实数λ,使得我们可以找到一个非零向量x,满足:如果能够找到的话,我们就称λ是矩阵A的特征值,非零向量x是矩阵A的
LeetCode15题: 寻找三数和,附完整代码
点击上方蓝字,和我一起学技术。Linkhttps://leetcode.com/problems/3sum/DifficultyMedium描述给定一个整数的数组,要求寻找当中所有的a,b,c三个数的组合,使得三个数的和为0.注意,即使数组当中的数有重复,同一个数也只能使用一次。Givenanarr
LeetCode 11 水池蓄水问题
点击上方蓝字,和我一起学技术。Linkhttps://leetcode.com/problems/container-with-most-water/DifficultyMedium题意给定n个非负整数,表示水库当中隔板的高度。隔板之间的距离为1,当下要从n个隔板当中选出两个,在其中注水,并且要使得
分布式初探——分布式事务与两阶段提交协议
点击上方蓝字,和我一起学技术。今天的文章咱们聊的是分布式原理当中的原子性,也称为分布式事务。不知道会不会有人觉得奇怪,分布式系统CAP原则当中并没有原子性,这个原子性是从哪里冒出来的?其实并不奇怪,之前我们在介绍各种一致性原则的时候,虽然没有明确提出来,但是原子性的相关内容已经隐藏在其中了。让我们回
高等数学——讲透求极限两大技巧,夹逼法与换元法
点击上方蓝字,和我一起学技术。今天的文章聊聊高等数学当中的极限,我们跳过极限定义以及一些常用极限计算的部分。我想对于一些比较常用的函数以及数列的极限,大家应该都非常熟悉。大部分比较简单的函数或者数列,我们可以很直观地看出来它们的极限。比如,当n趋向于无穷大的时候,的极限是0,再比如当n趋向于无穷大的
书籍推荐——一本老书,吴军老师《数学之美》
点击上方蓝字,和我一起学技术。1这几天春节,因为疫情和拜年,所以公众号停更了四天。但是这四天里我并没有偷懒,我利用间歇的时间读了一本久仰大名但是一直没有时间阅读的书。它就是吴军老师的著作——《数学之美》。之前早在我还在上大学的时候,就听线性代数的老师给我们推荐过这本书。但是当时并没有什么印象,也没有
分布式初探——面包店算法与多线程锁
点击上方蓝字,和我一起学技术。今天的文章我们介绍面包店算法。这个算法是由分布式系统大佬lamport提出的,用来解决多线程抢占资源的锁控制问题。在之前介绍数据库事务原则的时候,曾经介绍过隔离性。不仅在数据库当中,在并发系统当中,只要出现多个线程抢占一个资源的情况,就必然需要引入锁来实现隔离。保证一次