1 TechFlow

尚未进行身份认证

我要认证

公众号:TechFlow

等级
TA的排名 3w+

学算法还能指导找对象?是的,这就是大名鼎鼎的稳定婚姻算法

本文始发于个人公众号:TechFlow,原创不易,求个关注今天是算法数据结构专题的第30篇文章,我们一起来聊聊一个有趣的婚姻匹配问题。这个问题是我学到的比较有趣的算法问题前几名了,也是当年我们ACM校队面向新生宣讲的时候选择的例题。我们觉得用找对象这种新生会比较感兴趣的问题来忽悠他们,他们上钩的可能性比较大XD。问题描述婚姻匹配也可以叫做CP匹配,问题的场景非常简单。我们模拟真实的婚恋匹配的场景,比如线下的N男 vs N女的相亲活动。很自然的,男生和女生都会对异性在心里有一个评价,觉得自己中意

2020-08-07 11:01:42

机器学习 | 详解GBDT梯度提升树原理,看完再也不怕面试了

本文始发于个人公众号:TechFlow,原创不易,求个关注今天是机器学习专题的第30篇文章,我们今天来聊一个机器学习时代可以说是最厉害的模型——GBDT。虽然文无第一武无第二,在机器学习领域并没有什么最厉害的模型这一说。但在深度学习兴起和流行之前,GBDT的确是公认效果最出色的几个模型之一。虽然现在已经号称进入了深度学习以及人工智能时代,但是GBDT也没有落伍,它依然在很多的场景和公司当中被广泛使用。也是面试当中经常会问到的模型之一。遗憾的是市面上关于GBDT的资料虽然不少,但是很少有人把其中的核心

2020-08-06 11:11:24

Python | 面试的常客,经典的生产消费者模式

本文始发于个人公众号:TechFlow,原创不易,求个关注今天是Python专题的第23篇文章,我们来聊聊关于多线程的一个经典设计模式。在之前的文章当中我们曾经说道,在多线程并发的场景当中,如果我们需要感知线程之间的状态,交换线程之间的信息是一件非常复杂和困难的事情。因为我们没有更高级的系统权限,也没有上帝视角,很难知道目前运行的状态的全貌,所以想要设计出一个稳健运行没有bug的功能,不仅非常困难,而且调试起来非常麻烦。生产消费者模式在日常开发当中,从一个线程向另外的线程传输数据又是一件家常便

2020-08-05 12:29:03

LeetCode 89,因为题目晦涩而被点了1500+反对的搜索问题

本文始发于个人公众号:TechFlow,原创不易,求个关注今天是LeetCode专题第55篇文章,我们一起来看看LeetCode中的第89题 Gray Code(格雷码)。这题的官方难度是Medium,通过率是48.9%,点赞639,反对1545。又是一道反对比点赞多得多的题目,我个人发现其实这些反对很多的题目都有一个特点,就是题意比较晦涩,出题人的意图不太容易get到。不知道是不是老外理解能力不太行,所以都给出了这么多的反对。我们就来看看这道题的真面目吧。题意题目中说gray code,格

2020-08-04 12:02:47

LeetCode 87,远看是字符串其实是搜索,你能做出来吗?

本文始发于个人公众号:TechFlow,原创不易,求个关注今天是LeetCode专题第54篇文章,我们一起来看LeetCode 87题,Scramble String(爬行字符串)。这题的官方难度是Hard,通过率33%,点赞506,反对702。看起来这题难度还可以,但是反对比点赞多,其实这题质量还不错,反对比较多我猜可能是因为题意稍稍有些复杂,理解起来不太容易,编码也偏难。但是这题如果是放在正式比赛中出现的话,都不叫事。下面我们来看下题意。题意这题的题目叫做爬取字符串,看起来有些费解,其实

2020-08-01 20:43:14

Golang | Go语言多态的实现与interface使用

本文始发于个人公众号:TechFlow,原创不易,求个关注今天是golang专题的第11篇文章,我们一起来聊聊golang当中多态的这个话题。如果大家系统的学过C++、Java等语言以及面向对象的话,相信应该对多态不会陌生。多态是面向对象范畴当中经常使用并且非常好用的一个功能,如果你之前没有学过的话也没有关系,我们用一个简单的例子来说明一下。多态主要是用在强类型语言当中,像是Python这样的弱类型语言,变量的类型可以随意变化,也没有任何限制,其实区别不是很大。多态的含义对于Java或者是C

2020-07-31 19:48:44

pandas | DataFrame基础运算以及空值填充

本文始发于个人公众号:TechFlow,原创不易,求个关注今天是pandas数据处理专题的第四篇文章,我们一起来聊聊DataFrame中的索引。上一篇文章当中我们介绍了DataFrame数据结构当中一些常用的索引的使用方法,比如iloc、loc以及逻辑索引等等。今天的文章我们来看看DataFrame的一些基本运算。数据对齐我们可以计算两个DataFrame的加和,pandas会自动将这两个DataFrame进行数据对齐,如果对不上的数据会被置为Nan(not a number)。首先我们来创

2020-07-30 10:59:19

算法数据结构 | 只要30行代码,实现快速匹配字符串的KMP算法

本文始发于个人公众号:TechFlow,原创不易,求个关注今天是算法数据结构专题的第29篇文章,我们来聊一个新的字符串匹配算法——KMP。KMP这个名字不是视频播放器,更不是看毛片,它其实是由Knuth、Morris、Pratt这三个大牛名字的合称。老外很喜欢用人名来命名算法或者是定理,数学里就有一堆,什么高斯定理、欧拉函数什么的。但是中国人更倾向于从表意上来给一个概念命名,比如勾股定理、同余定理等等。之前觉得用人名命名很洋气,作者可以青史留名,后来想想这也是英文表意能力不足,很难用表意的方式起名的体

2020-07-29 11:07:00

机器学习 | 简介推荐场景中的协同过滤算法,以及SVD的使用

本文始发于个人公众号:TechFlow,原创不易,求个关注今天是机器学习专题的第29篇文章,我们来聊聊SVD在上古时期的推荐场景当中的应用。推荐的背后逻辑有没有思考过一个问题,当我们在淘宝或者是某东这类电商网站购物的时候。我们一进首页,就会看到首页展出了很多商品。这些商品往往质量很高,很吸引人,一旦逛起来可能就没个结束。那么问题来了,电商平台拥有那么多商品,它是怎么知道我们可能会喜欢什么样的商品的呢?这背后的逻辑是什么?简单来说在这背后,平台端的算法做了两件事情,第一件事情是召回,第二件事情是

2020-07-28 11:19:55

Python | Python初学者的自我修养,找到自己的方向

本文始发于个人公众号:TechFlow,原创不易,求个关注今天是Python专题的第22篇文章,原本今天是准备和大家继续Python当中多线程的使用的相关内容。然而前两天有一个读者在后台问我,学习Python有哪些适合新手入门的小项目推荐,所以今天这篇临时改为了答疑篇,咱们来聊聊这个问题。对于我来说Python的应用场景主要是机器学习、深度学习相关,对于其他的场景涉猎不多。因此本文的目的并不是列举出一系列小项目给你们练手,而是希望引导大家思考这个问题,从而找到适合自己的练习项目。Python的误区

2020-07-27 10:53:30

大公司的岗位那么多,怎么挑?里面又有哪些关键信息?

本文始发于个人公众号:TechFlow,原创不易,求个关注hello,大家好,今天这篇文章是之前关于面试相关文章的一个番外篇。我们在之前的文章当中提到,对于刚刚进入大学的小伙伴而言,可以参考一下大公司的招聘信息,来树立这大学四年里奋斗的目标,以及弄清楚准备面试的方向。但是还是有小伙伴私信我说,看了这些信息之后,仍然没有get到重点,不知道应该怎么理解,所以就有了今天这篇文章,来给大家翻译一下大公司的招聘简介,看看其中究竟传达了什么样的信息。先从整体感知当我们面临一个JD的时候,我们首先要做的事

2020-07-24 11:31:21

LeetCode 86 | 链表基础,一次遍历处理链表中所有符合条件的元素

本文始发于个人公众号:TechFlow,原创不易,求个关注今天是LeetCode专题第53篇文章,我们一起来看LeetCode第86题,Partition List(链表归并)。本题的官方难度是Medium,点赞1276,反对296,通过率大约41%。总体来说,这题质量一般,通过率有点高,整体难度偏简单,算是一道链表的基础题。对链表熟悉一些的同学来说,问题不大。题意我们首先来看下题意,题意是说给定一个链表以及一个整数x,要求根据x来对链表中的元素进行归并,使得链表的前半部分的结果小于x,后半部

2020-07-23 11:58:00

LeetCode 85 | 如何从矩阵当中找到数字围成的最大矩形的面积?

本文始发于个人公众号:TechFlow,原创不易,求个关注今天是LeetCode专题53篇文章,我们一起来看看LeetCode中的85题,Maximal Rectangle(最大面积矩形)。今天的这道题目和上一篇文章讲的Largest Rectangle in Histogram这题有一定的相似,所以如果没有看过上一篇文章的同学,建议先移步观看一下上一篇。LeetCode 84 | 单调栈解决最大矩形问题85题的官方难度是Hard,点赞2757,反对69,通过率37.2%左右。它的情况和84题非常

2020-07-22 11:56:18

我只是个普通大学生,想进BAT究竟有多难?

本文始发于个人公众号:TechFlow,原创不易,求个关注邻近高考填志愿,许多同学问我,所以抽空和大家聊聊高考和就业的问题。这篇主要是写给刚高考完或者是还在上大学的小伙伴们的,主要是想和大家讨论一个问题,进入BAT这样顶级的互联网公司究竟有多难?以及需要做的准备。心态谈到这个话题首先要说的就是心态,心态呢无非两种,对于大多数人来说这两种心态不是自负和自卑而是自卑以及超级自卑。具体的表现是有些人是根本不敢想,所以即使有投递简历的机会,也会视而不见,觉得自己反正也不行,就不去丢人了。或者是觉得这些岗位

2020-07-21 11:33:39

pandas | 如何在DataFrame中通过索引高效获取数据?

本文始发于个人公众号:TechFlow,原创不易,求个关注今天是pandas数据处理专题的第四篇文章,我们一起来聊聊DataFrame中的索引。上一篇文章当中我们介绍了DataFrame数据结构当中一些常用的索引的使用方法,比如iloc、loc以及逻辑索引等等。今天的文章我们来看看DataFrame的一些基本运算。数据对齐我们可以计算两个DataFrame的加和,pandas会自动将这两个DataFrame进行数据对齐,如果对不上的数据会被置为Nan(not a number)。首先我们来创

2020-07-20 10:57:52

数据结构 | 30行代码,手把手带你实现Trie树

本文始发于个人公众号:TechFlow,原创不易,求个关注今天是算法和数据结构专题的第28篇文章,我们一起来聊聊一个经典的字符串处理数据结构——Trie。在之前的4篇文章当中我们介绍了关于博弈论的一些算法,其中应用最广也是最重要的就是最后的SG函数。了解到这些之后,足够我们应付常见的博弈论算法问题了。博弈论本身就是一门学科,其中有这很深邃的理论基础,我们只是浅尝辄止,大家感兴趣的可以自行钻研一下,相信一定会很有收获。小故事以前读过一个大牛的文章,文章里讨论了一个问题,如果不是为了面试的话,我们

2020-07-19 19:33:02

机器学习 | SVD矩阵分解算法,对矩阵做拆分,然后呢?

本文始发于个人公众号:TechFlow,原创不易,求个关注今天是机器学习专题第28篇文章,我们来聊聊SVD算法。SVD的英文全称是Singular Value Decomposition,翻译过来是奇异值分解。这其实是一种线性代数算法,用来对矩阵进行拆分。拆分之后可以提取出关键信息,从而降低原数据的规模。因此广泛利用在各个领域当中,例如信号处理、金融领域、统计领域。在机器学习当中也有很多领域用到了这个算法,比如推荐系统、搜索引擎以及数据压缩等等。SVD简介我们假设原始数据集矩阵D是一个mxn的

2020-07-17 11:32:40

Python | 感知线程状态的解决方案,Event与信号量

本文始发于个人公众号:TechFlow,原创不易,求个关注今天是Python专题的第21篇文章,我们继续多线程的话题。上周的文章当中我们简单介绍了线程和进程的概念,以及在Python当中如何在主线程之外创建其他线程,并且还了解了用户级线程和后台线程的区别以及使用方法。今天我们来看看线程的其他使用,比如如何停止一个线程,线程之间的Event用法等等。停止线程利用Threading库我们可以很方便地创建线程,让它按照我们的想法执行我们想让它执行的事情,从而加快程序运行的效率。然而有一点坑爹的是,线

2020-07-16 11:14:48

LeetCode 84 | 单调栈解决最大矩形问题

本文始发于个人公众号:TechFlow,原创不易,求个关注今天是LeetCode专题第52篇文章,我们一起来看LeetCode第84题,Largest Rectangle in Histogram(最大矩形面积)。这道题的官方难度是Hard,点赞3581,反对只有80,通过率在34.7%左右。从通过率上来看,难度其实还可以,并没有特别大,但是这道题的点赞比很高,说明题目的质量很好。实际上也的确如此,这题非常经典,我个人也非常推荐。建议大家有能力的都做一下本题,一定会很有收获。题意假设我们有一系

2020-07-15 10:49:13

面经 | 我在大学里拿了XXX大赛的X等奖,可以写进简历吗?

本文始发于个人公众号:TechFlow,原创不易,求个关注大家好,今天是面经专题的第二篇,我们来聊聊另外一个核心的问题,简历当中写什么?这篇文章主要针对在校生和职场小白,如果已经是职场老鸟,可以略过本文。对于应届生而言,最头疼的问题可能就是不知道简历该怎么写了。如果是硕士可能还好些,毕竟跟着导师做过一些项目发过论文,还是能拿得出点东西来的。如果是本科生的话,估计要头疼很多,因为很多人没有特别拿得出手的经历,临时想要准备也不知道该从何入手。先来思考一个问题,如果我们把简历的一些特点作为特征,简历在面试

2020-07-14 11:36:18

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 原力探索
    原力探索
    参与《原力计划【第二季】——打卡挑战》的文章入选【每日精选】的博主将会获得此勋章。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。
  • 原力探索 · S
    原力探索 · S
    在《原力计划【第二季】》打卡挑战活动中,发布 12 篇原创文章参与活动的博主,即可获得此勋章。(本次活动结束后统一统计发放)