坚持更新了一百天之后,我总结了这些感想
在这周早些天,TechFlow的原创文章达到了一百篇,由于我日更一篇,基本上可以看成运营了一百天公众号。到我写文章的此刻,粉丝数量是3313,除以一百的话,差不多每天新增30个关注。放到自媒体当中这显然不算是一个好成绩,但是我个人还是非常满足,原本我以为会是一个非常平坦的增长曲线,现在居然还看到了一
LeetCode46 回溯算法求全排列,这次是真全排列
点击上方蓝字,和我一起学技术。今天是LeetCode的26篇文章,我们来实战一下全排列问题。在之前的文章当中,我们讲过八皇后、回溯法,也提到了全排列,但是毕竟没有真正写过。今天的LeetCode46题正是让我们生成给定元素的全排列。题意很简单,只有一句话,给定一个没有重复元素的序列,让我们返回这个序
LeetCode46 回溯算法求全排列,这次是真全排列
今天是LeetCode的26篇文章,我们来实战一下全排列问题。在之前的文章当中,我们讲过八皇后、回溯法,也提到了全排列,但是毕竟没有真正写过。今天的LeetCode46题正是让我们生成给定元素的全排列。题意很简单,只有一句话,给定一个没有重复元素的序列,让我们返回这个序列所有的全排列,并且我们不需要
浅谈分布式集群资源管理系统原理
今天是分布式专题的第11篇文章,我们一起来聊聊分布式集群资源管理。在开始文章之前,我们先来问一个问题,为什么是国际上是亚马逊,国内是阿里这两家公司云计算搞得最好呢?这两家公司之间有一个巨大的共同点,就是它们都是电商公司。电商公司的特点很明显,就是流量不是固定的,往往会受到大促、节日的影响。像是国内的
高等数学——砍瓜切菜算积分的分部积分法
今天是高等数学专题的第10篇文章。今天我们来看另一个解不定积分的方法——分部积分法,这个方法非常常用,甚至比换元法还要常用。在我仅存不多的高数的记忆里,这是必考的内容之一。虽然这个内容非常重要,但是却并不难,推导也很简单,所以这篇文章几乎没有难度,也没什么公式推导。原理和推导分部积分法的原理非常简单
动态规划入门——多重背包与单调优化,从此登堂入室
今天是算法与数据结构的第14篇文章,也是动态规划专题的第三篇。在之前的文章当中,我们介绍了多重背包的二进制拆分的解法。在大多数情况下,这种解法已经足够了,但是如果碰到极端的出题人可能还是会被卡时间。这个时候只能用更加快速的方法,也就是今天我们要一起来看的单调优化。单调优化是单调队列优化的简称,单调栈
机器学习——经典十大算法之EM算法
今天是机器学习专题的第14篇文章,我们来聊聊大名鼎鼎的EM算法。EM算法的英文全称是Expectation-maximizationalgorithm,即最大期望算法,或者是期望最大化算法。EM算法号称是十大机器学习算法之一,听这个名头就知道它非同凡响。我看过许多博客和资料,但是少有资料能够将这个算
Python——迭代器的高级用法(终极篇)
今天是Python专题的第8篇文章。今天我们依然介绍的是迭代器,不过介绍的是几个比较常用的高级用法,在实际场景当中非常实用,可以帮助我们大大简化代码的复杂度。跳过开头首先是跳过开始部分,这个在我们读取文本的时候最常用。在实际的应用当中,比如记录的日志或者是代码等等,一般来说头部都会附上一段说明,或者
LeetCode45,初看是搜索,苦思冥想原来是贪心
今天是LeetCode系列的第25篇文章,今天我们一起来看的是LeetCode的第45题,JumpGameII。有同学后台留言问我说,我每次写文章的题目是怎么选的,很简单基本上是按照顺序选择Medium和Hard难度,然后会根据题目内容以及评价过滤掉一些不太靠谱或者是比较变态没有意思的题。这些题当然
LeetCode44,Hard,从搜索到动态规划的详细推导
今天是LeetCode专题的第24篇文章,我们一起来看LeetCode的44题——WildcardMatching,这是一道Hard难度的问题,会稍稍有点难,但是好消息是没有出现我们之前没见过的算法。题意很简单,给定两个字符串s和p,其中s是母串,p是模式串。简单解释一下这两个概念,这两个概念一般出
分布式——详解Google leveldb中的LMST细节
今天是分布式专题的第10篇文章,我们继续来聊聊LSMT这个数据结构。LSMT是一个在分布式系统当中应用非常广泛,并且原理直观简单的数据结构。在上一篇文章当中我们进行了详细的讨论,有所遗忘或者是新关注的同学可以点击下方的链接回顾一下上一讲的内容。分布式——吞吐量巨强、Hbase的承载者LSMTleve
高等数学——两类换元法求解不定积分
今天是高等数学专题的第九篇文章,我们继续来看不定积分。在上篇文章当中我们回顾了不定积分的定义以及简单的性质,我们可以简单地认为不定积分就是求导微分的逆操作。我们要做的是根据现有的导函数,逆推出求导之前的原函数。除了基本定义之外,我们还介绍了一些简单的性质和常用积分的积分表。但是显然根据已有的性质对于
动态规划入门——经典的完全背包与多重背包问题
今天是算法数据结构专题的第13篇文章,也是动态规划专题的第二篇。上一讲当中我们一起学习了动态规划算法中的零一背包问题,我们知道了所谓的零一背包是指每一种物品只有一个,所以它的状态只有0和1两种,即拿或者不拿。而今天我们要来讨论物品不止有一个的情况,物品不止有一个也分两种,一种是不作任何限制,要多少有
详解Kmeans的两大经典优化,mini-batch和kmeans++
今天是机器学习专题的第13篇文章,我们来看下Kmeans算法的优化。在上一篇文章当中我们一起学习了Kmeans这个聚类算法,在算法的最后我们提出了一个问题:Kmeans算法虽然效果不错,但是每一次迭代都需要遍历全量的数据,一旦数据量过大,由于计算复杂度过大迭代的次数过多,会导致收敛速度非常慢。想想看
Python——实用的enumerate和zip
今天是Python专题的第7篇文章,我们继续介绍迭代相关。enumerate首先介绍的是enumerate函数。在我们日常编程的过程当中,经常会遇到一个问题。在C语言以及一些古老的语言当中是没有迭代器这个概念的,所以我们要遍历数组或者是容器的时候,往往只能通过下标。有了迭代器之后,我们遍历的过程方便
LeetCode42题,单调栈、构造法、two pointers,这道Hard题的解法这么多?
点击上方蓝字,和我一起学技术。今天是LeetCode专题的第23篇文章。今天来看一道很有意思的题,它的难度是Hard,并且有许多种解法。首先我们来看题面,说是我们有若干个水坝,水坝的宽都是1,但是水坝的高度参差不齐。某一天我们向水坝围起来的部分灌水,一直到灌满为止,请问水坝中存储了多少单位的水?我们
LeetCode 43,一题学会高精度算法
今天是LeetCode系列第22篇文章,今天讲的内容是高精度算法。今天和大家讨论的算法是高精度,对应的LeetCode是第43题。题面其实没什么好说的,以字符串的形式给定两个数字,要求返回这两个数字的乘积。之所以是以字符串的形式给数字是因为这个数字可能会非常大,题目当中给定的范围是110位的数字。对
分布式——吞吐量巨强、Hbase的承载者 LSMT
今天是分布式系统的第九篇文章。今天给大家分享的内容是LSM树,它的英文是Log-structedMerge-tree。看着有些发怵,但其实它的原理不难,和B树相比简直算是小儿科了。并且这也是一个非常经典的数据结构,并且在大数据系统当中有非常广泛的应用。有许多耳熟能详的经典系统,底层就是基于LSM树实
干货 | 教你一文掌握数据预处理
数据分析一定少不了数据预处理,预处理的好坏决定了后续的模型效果,今天我们就来看看预处理有哪些方法呢?记录实战过程中在数据预处理环节用到的方法~主要从以下几个方面介绍:常用方法Numpy部分Pandas部分Sklearn部分处理文本数据一、常用方法1、生成随机数序列randIndex=random.s
高等数学——微积分中简单的不定积分
今天是高等数学专题的第8篇文章,今天的内容是不定积分。我之前的高数老师曾经说过,高等数学就是大半本的微积分加上一些数列和极限的知识。而微积分当中,积分相关又占据了大半江山。微积分之所以重要并不是因为它的比重大、容量多,而是因为它常用。几乎所有理工科的课本上都有微积分的公式,原因也很简单,当年这些科学