Golang | 既是接口又是类型,interface是什么神仙用法?
今天是golang专题的第12篇文章,我们来继续聊聊interface的使用。 在上一篇文章当中我们介绍了面向对象的一些基本概念,以及golang当中interface和多态的实现方法。今天我们继续来介绍interface当中其他的一些方法。 在Java以及其他语言当中接口是一种写法规范,而在golang当中,interface其实也是一种值,它可以像是值一样传递。
机器学习 | 详解GBDT梯度提升树原理,看完再也不怕面试了
点击上方蓝字,关注并星标,和我一起学技术。今天是机器学习专题的第30篇文章,我们今天来聊一个机器学习时代可以说是最厉害的模型——GBDT。虽然文无第一武无第二,在机器学习领域并没有什么最厉害的模型这一说。但在深度学习兴起和流行之前,GBDT的确是公认效果最出色的几个模型之一。虽然现在已经号称进入了深
Python | 面试的常客,经典的生产消费者模式
点击上方蓝字,关注并星标,和我一起学技术。今天是Python专题的第23篇文章,我们来聊聊关于多线程的一个经典设计模式。在之前的文章当中我们曾经说道,在多线程并发的场景当中,如果我们需要感知线程之间的状态,交换线程之间的信息是一件非常复杂和困难的事情。因为我们没有更高级的系统权限,也没有上帝视角,很
靠谱的人都有什么特质,你是一个靠谱的人吗?
点击上方蓝字,关注并星标,和我一起学技术。自从我们走出了高中的校门,我们就不再是单个的个体,而常常要与人一起合作。合作得多了,自然就会发现有些人你想要与她们合作,合作了一次还会希望有第二次。而有些人可能只是合作了一次你会后悔莫及,觉得自己踩了深坑。这样的经历哪怕是在学校里,相信也能体会得到。不知道大
LeetCode 87,因为题目晦涩而被点了1500+反对的搜索问题
今天是LeetCode专题第55篇文章,我们一起来看看LeetCode中的第89题 Gray Code(灰色代码)。 这题的官方难度是Medium,通过率是48.9%,点赞639,反对1545。又是一道反对比点赞多得多的题目,我个人发现其实这些反对很多的题目都有一个特点,就是题意比较晦涩,出题人的意图不太容易get到。不知道是不是老外理解能力不太行,所以都给出了这么多的反对。
大家都在聊内卷,究竟内卷是什么意思,互联网行业真的内卷了么?
闲来无事,日常吹水。 这几年内卷这个词变得很流行,我经常在知乎里的各种互联网行业相关的问题当中看到。总是被拿来解释竞争激烈的就业行情以及指责大环境的糟糕。那么内卷究竟是什么意思,现在的互联网行业真的内卷了吗?
LeetCode 87,远看是字符串其实是搜索,你能做出来吗?
今天是LeetCode专题第54篇文章,我们一起来看LeetCode 87题,Scramble String(爬行字符串)。 这题的官方难度是Hard,通过率33%,点赞506,反对702。看起来这题难度还可以,但是反对比点赞多,其实这题质量还不错,反对比较多我猜可能是因为题意稍稍有些复杂,理解起来不太容易,编码也偏难。但是这题如果是放在正式比赛中出现的话,都不叫事。 下面我们来看下题意。
Golang中的interface是干嘛的?从面向对象中的多态与接口开始说起……
今天是golang专题的第11篇文章,我们一起来聊聊golang当中多态的这个话题。 如果大家系统的学过C++、Java等语言以及面向对象的话,相信应该对多态不会陌生。 多态是面向对象范畴当中经常使用并且非常好用的一个功能,如果你之前没有学过的话也没有关系,我们用一个简单的例子来说明一下。多态主要是用在强类型语言当中,像是Python这样的弱类型语言,变量的类型可以随意变化,也没有任何限制,其
pandas | DataFrame基础运算以及空值填充
今天是pandas数据处理专题的第四篇文章,我们一起来聊聊DataFrame的基本运算。 上一篇文章当中我们介绍了DataFrame数据结构当中一些常用的索引的使用方法,比如iloc、loc以及逻辑索引等等。今天的文章我们来看看DataFrame的一些基本运算。 我们可以计算两个DataFrame的加和,pandas会自动将这两个DataFrame进行数据对齐,
算法数据结构 | 只要30行代码,实现快速匹配字符串的KMP算法
今天是算法数据结构专题的第29篇文章,我们来聊一个新的字符串匹配算法——KMP。 KMP这个名字不是视频播放器,更不是看毛片,它其实是由Knuth、Morris、Pratt这三个大牛名字的合称。老外很喜欢用人名来命名算法或者是定理,数学里就有一堆,什么高斯定理、欧拉函数什么的。但是中国人更倾向于从表意上来给一个概念命名,比如勾股定理、同余定理等等。之前觉得用人名命名很洋气,作者可以青史留名,后来
SVD | 简介推荐场景中的协同过滤算法,以及SVD的使用
有没有思考过一个问题,当我们在淘宝或者是某东这类电商网站购物的时候。我们一进首页,就会看到首页展出了很多商品。这些商品往往质量很高,很吸引人,一旦逛起来可能就没个结束。那么问题来了,电商平台拥有那么多商品,它是怎么知道我们可能会喜欢什么样的商品的呢?这背后的逻辑是什么?
Python | Python初学者的自我修养,找到自己的方向
今天是Python专题的第22篇文章,原本今天是准备和大家继续Python当中多线程的使用的相关内容。然而前两天有一个读者在后台问我,学习Python有哪些适合新手入门的小项目推荐,所以今天这篇临时改为了答疑篇,咱们来聊聊这个问题。对于我来说Python的应用场景主要是机器学习、深度学习相关,对于其他的场景涉猎不多。因此本文的目的并不是列举出一系列小项目给你们练手,
我只是个普通大学生,想进BAT究竟有多难?
这篇主要是写给刚高考完或者是还在上大学的小伙伴们的,主要是想和大家讨论一个问题,进入BAT这样顶级的互联网公司究竟有多难?以及需要做的准备。 谈到这个话题首先要说的就是心态,心态呢无非两种,对于大多数人来说这两种心态不是自负和自卑而是自卑以及超级自卑。具体的表现是有些人是根本不敢想,所以即使有投递简历的机会,也会视而不见,觉得自己反正也不行,就不去丢人了
pandas | 如何在DataFrame中通过索引高效获取数据?
今天是pandas数据处理专题第三篇文章,我们来聊聊DataFrame中的索引。 上篇文章当中我们简单介绍了一下DataFrame这个数据结构的一些常见的用法,从整体上大概了解了一下这个数据结构。今天这一篇我们将会深入其中索引相关的应用方法,了解一下DataFrame的索引机制和使用方法。
golang | Go语言入门教程——结构体初始化与继承
今天是golang专题第10篇文章,我们继续来看golang当中的面向对象部分。 在上一篇文章当中我们一起学习了怎么创建一个结构体,以及怎么给结构体定义函数,还有函数接收者的使用。今天我们来学习一下结构体本身的一些使用方法。
Python | 感知线程状态的解决方案,Event与信号量
今天是Python专题的第21篇文章,我们继续多线程的话题。 上周的文章当中我们简单介绍了线程和进程的概念,以及在Python当中如何在主线程之外创建其他线程,并且还了解了用户级线程和后台线程的区别以及使用方法。今天我们来看看线程的其他使用,比如如何停止一个线程,线程之间的Event用法等等。
如何使用print实现不换行打印
今天分享一个Python的基础小知识,使用print完成 不换行打印。 首先思考一下为什么执行print("hello,world)会在同一行打印,而分别执行两次print("hello,world)就会换行打印
JVM中的Safepoints
点击上方的蓝字关注我吧程序那些事简介java程序员都听说过GC,大家也都知道GC的目的是扫描堆空间,然后将那些标记为删除的对象从堆空间释放,以提升可用的堆空间。今天我们会来探讨一下隐藏在GC背后的一个小秘密Safepoints。GC的垃圾回收器小师妹:F师兄,GC的垃圾回收器的种类为什么会有这么多呀
机器学习 | SVD矩阵分解算法,对矩阵做拆分,然后呢?
今天是机器学习专题第28篇文章,我们来聊聊SVD算法。 SVD的英文全称是Singular Value Decomposition,翻译过来是奇异值分解。这其实是一种线性代数算法,用来对矩阵进行拆分。拆分之后可以提取出关键信息,从而降低原数据的规模。因此广泛利用在各个领域当中,例如信号处理、金融领域、统计领域。在机器学习当中也有很多领域用到了这个算法,比如推荐系统、搜索引擎以及数据压缩等等。
LeetCode 84 | 单调栈解决最大矩形问题
今天是LeetCode专题第52篇文章,我们一起来看LeetCode第84题,Largest Rectangle in Histogram(最大矩形面积)。 这道题的官方难度是Hard,点赞3581,反对只有80,通过率在34.7%左右。从通过率上来看,难度其实还可以,并没有特别大,但是这道题的点赞比很高,说明题目的质量很好。实际上也的确如此,这题非常经典,我个人也非常推荐。建议大家有能力的都做