只要五分钟,带你学会策略模式

大家好,今天给大家介绍一个新的设计模式——策略模式。 策略模式的内容非常简单,五分钟就可以学会。严格来说,这既可以当做是一种设计模式,也可以当做是一种函数式编程的思想。 函数式编程 我们之前在介绍Python的语言特性的时候,曾经提到过函数式编程。所谓的函数式编程,也就是说我们可以把函数也看成是变成 ... »

产品经理的流程总是变,所以我搬出了大杀器状态机模式

大家好,今天给大家介绍一个新的设计模式,这个设计模式非常重要,在我们日常的开发工作当中经常使用。它就是大名鼎鼎的状态机模式。 状态机模式非常适合用在复杂的流程或者是系统当中,可以方便我们对系统的某一个状态进行抽象,这会让我们编码具有更强的可读性以及延展性。 有向图与DAG 首先和大家解释一下状态机当 ... »

codeforces 1461D,离线查询是什么神仙方法,为什么快这么多?

大家好,欢迎来到codeforces专题。 今天我们选择的题目是1461场次的D题,这题全场通过了3702人,从难度上来说比较适中。既没有很难,也很适合同学们练手。另外它用到了一种全新的思想是在我们之前的文章当中没有出现过的,相信对大家会有一些启发。 链接:https://codeforces.co ... »

不知不觉间成了职场老鸟,四年多的经验都总结在这里了!

大家好,又到周末了,今天跟大家聊一聊职场。 说起程序员的职场,大家第一感觉就是很难混,竞争压力大,也就是卷。然后呢还有35岁危机,工作强度也不小,各种996。而且还有各种各样大大小小的套路和坑,说起来一把辛酸泪,打工人的确不容易。所以我写这篇文章呢,就是想要分享一下这几年我总结出的几点心得,给那些正 ... »

Treap——堆和二叉树的完美结合,性价比极值的搜索树

大家好,今天和大家聊一个新的数据结构,叫做Treap。 Treap本质上也是一颗BST(平衡二叉搜索树),和我们之前介绍的SBT是一样的。但是Treap维持平衡的方法和SBT不太一样,有些许区别,相比来说呢,Treap的原理还要再简单一些,所以之前在竞赛当中不允许使用STL的时候,我们通常都会手写一 ... »

规约模式,颤抖吧产品经理!再也不怕你乱改需求了

大家好,今天来和大家聊聊规约模式。 规约模式的英文是Specification Pattern,这里的规约其实是一个表意的翻译,Specification直译过来是要求、技术说明、明确的意思。光看名字估计大家都是一脸懵逼,根本不知道这个设计模式大概会是一个什么样子。这也是设计模式的一个通病,就是内涵 ... »

订阅者模式,公众号、B站、快手用了都说好!

大家好,今天和大家来聊一个新的设计模式——订阅者模式。 这个模式在我们的生活当中非常常见,可以说是几乎所有的媒体平台都用或多或少地用到了这个模式。比如公众号,我们来仔细梳理一下公众号这个平台当中的整个逻辑,会发现其实这里面一共有三方存在,这三方呈一个三角关系。 三方订阅关系 画出来的话大概是这个样子 ... »

设计模式,你相信吗,只用两个函数实现事务!

大家好,今天给大家介绍一个新的设计模式,叫做memento模式。 memento在英文当中是纪念品的意思,在这里,指的是对象的深度拷贝。通过对对象深度拷贝的方法来实现事务的功能。有了解过数据库的小伙伴们应该都知道,在数据库当中有些操作是绑定的,要么一起执行成功,要么一起不执行,绝对不运行某些操作执行 ... »

观察者模式,无需多线程完成数据监听

大家好,我们今天来了解一个新的设计模式——观察者模式。 观察者模式的思路很简单,它被广泛地用在各种数据监控上。很多时候我们希望监听某个数据的变化,希望一旦获悉它的变化之后立即采取一些举措。按照常规的操作,我们需要开启额外的线程来进行监听。但是开启线程一则非常麻烦,二则需要带来额外的开销,我们今天介绍 ... »

太天才了,把感知机组装在一起是不是就是神经网络了?

大家好,今天来继续聊聊深度学习。 有同学跟我说很久没有更新深度学习的模型了,倒不是不愿意更新,主要是一次想把一个技术专题写完。但是纯技术文章观众老爷们不太爱看,所以我一般都把纯技术文章放在次条。不过既然有同学催更,那么我还是响应一下需求,来更新一篇。 神经网络与感知机的不同 上一篇文章当中我们讲了感 ... »

吃透论文——推荐算法不可不看的DeepFM模型

大家好,我们今天继续来剖析一些推荐广告领域的论文。 今天选择的这篇叫做DeepFM: A Factorization-Machine based Neural Network for CTR Prediction,翻译过来就是DeepFM:一个基于深度神经网络的FM模型。这篇paper的作者来自哈工 ... »

不写垃圾代码,从学会这个设计模式开始

大家好,我们今天来一起学习一个新的设计模式,叫做媒介模式。 所谓的媒介其实是一种封装的思想,把某些功能共同的逻辑抽象出来做成一个中间的媒介,从而减少代码之间的耦合,提升拓展性,更加方便日后的需求变更。 简单案例 我们用一个实际的例子来认知一下媒介这个设计模式。 假设我们要做一个聊天室,如果真要去做的 ... »

codeforces 1451D,一道有趣的博弈论问题

大家好,欢迎来到codeforces专题。 今天选择的问题是Contest 1451场的D题,这是一道有趣简单的伪博弈论问题,全场通过的人有3203人。难度不太高,依旧以思维为主,坑不多,非常友好。 题目链接:https://codeforces.com/contest/1451/problem/D ... »

剑气之争,聊聊算法岗位的门户之见!

大家好,今天给大家聊点有意思的。 以前在读金庸先生《笑傲江湖》的时候,总觉得有一个地方有点扯,就是华山派的剑气之争。按说有人喜欢耍贱(剑),有人喜欢用气,这其实是个人喜好,怎么会上升到门户纷争,还因此自相残杀呢?所以我之前的时候一直觉得这个是金庸先生剧情需要,不然怎么会有风清扬传功令狐冲的情节呢? ... »

80%学生的困惑,学完C/C++之后学什么?

大家好,最近不少小伙伴问我,说是学院最近教完了C/C++之后就没有相关的语言课开设了,陷入了一个迷茫期,不知道后面应该学些什么,来向我请教。 一直以来问我这个问题的小伙伴还不少,我倒也不是不愿意回答,而是之前的文章其实关于这个问题提了不少次,所以觉得大家都get了。既然还是有很多小伙伴困惑,所以就单 ... »

算法工程师日常,训练的模型翻车了怎么办?

大家好,今天和大家聊一个算法工程师的职场日常——模型翻车。 我们都知道算法工程师的工作重点就是模型训练,很多人每天的工作就是做特征、调参数然后训练模型。所以对于算法工程师而言,最经常遇到的问题就是模型翻车了,好容易训练出来的模型结果效果还很差。很多刚入门的小白遇上这种情况都会一筹莫展,不知道究竟是哪 ... »

迭代器设计模式,帮你大幅提升Python性能

大家好,我们的git专题已经更新结束了,所以开始继续给大家写一点设计模式的内容。 今天给大家介绍的设计模式非常简单,叫做iterator,也就是迭代器模式。迭代器是Python语言当中一个非常重要的内容,借助迭代器我们可以很方便地实现很多复杂的功能。在深度学习当中,数据的获取往往也是通过迭代器实现的 ... »

十年编程经验总结,三点技巧帮你提升代码能力!

大家好,今天和大家聊一个老生常谈的的话题,作为程序员,我们怎么提升我们的代码能力? 在回答这个问题之前,我们需要先给代码能力下一个定义,搞清楚究竟什么是代码能力。只有找对了路才方便发力,很多同学对这个问题其实是不够清楚的。往往会觉得代码能力就是算法能力,就是去刷LeetCode或者是算法题。还有些同 ... »

屠龙少年变成恶龙?聊聊推荐系统与信息茧房

大家好,今天和大家聊聊推荐系统中的信息茧房。 说到信息茧房大家都很有危机感,之前在知乎当中还有人提问,如何对抗推荐系统,避免陷入信息茧房当中。那么究竟什么是信息茧房,它又是怎么出现的呢?我们的未来真的会被推荐系统操控接触不到外界的新事物吗? 在回答这些问题之前,我们先来信息茧房出现的原因。 马太效应 ... »

codeforces 1438D,思路非常非常巧妙的构造题

大家好,欢迎来到codeforces专题。 今天选择的问题是contest1438的D题,全场通过人数为1325人。一般在codeforces当中千人通过的题难度都不算太高,但是这题有点例外,虽然没有涉及一点高深的算法,但是想要自己做出来还是有点难度的。 题目链接:https://codeforce ... »