LeetCode 56,区间合并问题
今天是LeetCode专题的第33篇文章,我们一起来看LeetCode的第56题,它的难度是Medium。题意这道题的题意也很简单,只有一句话:“Givenacollectionofintervals,mergealloverlappingintervals.”interval是间隔、区间的意思,也
[长文] 学Python不用培训班,一篇文章带你入门
最近有许多小伙伴后台联系我,说目前想要学习Python,但是没有一份很好的资料入门。一方面的确现在市面上Python的资料过多,导致新手会不知如何选择,另一个问题很多资料内容也很杂,从1+1到深度学习都包括,纯粹关注Python本身语法的优质教材并不太多。刚好我最近看到一份不错的英文Python入门
敲黑板,定积分也有换元和分部积分法!
今天是高等数学的第14篇文章,我们一起来看看定积分的换元法和分部积分法。我们之前在不定积分的内容当中曾经介绍过换元法和分部积分法这两种求解不定积分的方法,今天我们来探索将这两种方法应用在定积分上。有一点需要注意,虽然不定积分和定积分只有一字之差,但是在数学上其实它们是两个完全不同的概念。不定积分求解
动态规划入门——在转移的时候使用二分法加速查找
今天是算法与数据结构专题的17篇文章,也是动态规划专题的第6篇。今天我们一起来看一道非常经典的动态规划的问题,有多经典呢?我想了一下,大概是我这辈子做的最早的一道动态规划问题,以至于我现在都记得它的题面。题面这道题就是导弹拦截系统,说是某一个国家开发了一套导弹拦截系统,这个拦截系统可以拦截敌国打来的
召回、精确、准确,这些让人头大的概念一文全都讲清楚
今天是机器学习真题的第17篇文章,我们来讲讲机器学习模型的评估。在之前的文章当中我们已经介绍了好几个模型了,有朴素贝叶斯、KNN、KMeans、EM还有线性回归和逻辑回归。今天我们来和大家聊聊该怎么评估这些模型。均方差这个概念很简单,它和回归模型当中的损失函数是一样的。可以理解成我们预测值和真实值之
Python——__slots__,property和对象命名规范
今天是Python专题的第11篇文章,我们来聊聊面向对象的一些进阶使用。__slots__如果你看过github当中一些大牛的代码,你会发现很多大牛经常在类的顶部加上__slots__关键字。如果你足够好奇,你可能会试着把这个关键字去掉再运行试试,你会发现去掉了之后什么也没有发生,一切依然运行得很好
LeetCode50,一题学会快速幂
今天是LeetCode的第31篇文章,我们来看下LeetCode的第50题,求一个数的幂。题意这道题的题意只有一句话,就是给定两个数x和n,要求。从题意来看,这道题平平无奇,基本上没有什么特别的。但是我们继续看它的note就会发现问题,其中x是浮点数,它的范围是-100到100。而n的范围则是32位
spark——RDD常见的转化和行动操作
今天是spark第三篇文章,我们继续来看RDD的一些操作。我们前文说道在spark当中RDD的操作可以分为两种,一种是转化操作(transformation),另一种是行动操作(action)。在转化操作当中,spark不会为我们计算结果,而是会生成一个新的RDD节点,记录下这个操作。只有在行动操作
从头搭建一个“微博”有多难?
今天是分布式专题的第13篇,今天的文章我们不讲空洞的理论,来聊一个实际点的问题。众所周知,微博的程序员经常不定期加班。和别的程序员不同,别的岗位的程序员可能加班是可控的,但是微博的程序员不是。为什么呢?因为程序员们无法预知明星们什么时候有新的大料产生,一旦有新料,微博崩溃是妥妥的。甚至很多粉丝用微博
高等数学——积分中值定理
今天是高等数学专题的第12篇,我们继续来看定积分。之前在讲微分求导内容的时候,介绍过一系列微分中值定理的推导。既然有微分中值定理,那么自然也有积分中值定理,我们下面就来看看积分中值定理的定义。极值定理极值定理也叫最大最小值定理,它的含义非常直观:如果函数f(x)在区间[a,b]上连续的函数,必然存在
动态规划——用二进制表示集合的状态压缩DP
今天是算法与数据结构专题的第16篇,也是动态规划系列的第5篇。今天文章的内容是动态规划当中非常常见的一个分支——状态压缩动态规划,很多人对于状态压缩畏惧如虎,但其实并没有那么难,希望我今天的文章能带你们学到这个经典的应用。二进制表示状态在讲解多重背包问题的时候,我们曾经讲过二进制表示法来解决多重背包
【硬核】使用替罪羊树实现KD-Tree的增删改查
今天是机器学习的第16篇文章,我们来继续上周KD-Tree的话题。如果有没有看过上篇文章或者是最新关注的小伙伴,可以点击一下下方的传送门:【硬核】机器学习与数据结构的完美结合——KD-tree旋转不可行分析上周我们实现了KD-Tree建树和查询的核心功能,然后我们留了一个问题,如果我们KD-Tree
Python——花式打印对象的若干种方法
今天是Python专题的第10篇文章,我们来聊聊Python当中的类。打印实例我们先从类和对象当中最简单的打印输出开始讲起,打印一个实例是一个非常不起眼的应用,但是在实际的编程当中却非常重要。原因也很简单,因为我们debug的时候往往会想看下某个类当中的内容是不是符合我们的预期。但是我们直接prin
LeetCode49 一题学会hash算法
今天是LeetCode专题的第30篇文章,一起来看一道字符串分组的问题。题意这题的题意很简单,给定一个字符串数组,要求将所有字符串按照构成分组。举个例子,比如给定的数组是[eat,ate,tea,tan,nat,bat]。其中eat,ate,tea这三个单词用到的字母都是e,t和a各一个。tan和n
LeetCode48, 如何让矩阵原地旋转90度
今天是LeetCode第29篇,我们来看一道简单的矩阵旋转问题。题意题目的要求很简单,给定一个二维方形矩阵,要求返回矩阵旋转90度之后的结果。下面我们来看两个例子:题解这个动图一看就明白了,也就是说我们需要将一个二维矩阵顺时针旋转90度。这个题意我们都很好理解,但是题目当中还有一个限制条件:我们不能
浅谈分布式集群资源管理系统【二】
今天是分布式专题的第12篇文章,我们继续来看集群资源管理系统。上一篇的文章当中我们简单了解了一下什么是分布式集群资源管理,它的诞生背景和解决的问题是什么,以及它大概有哪些优点和不足。上一章的内容比较表面,没有过多深入原理,这一篇文章我们一起来看看集群管理系统的原理部分。对一篇文章有所遗忘,或者是最新
高等数学——简单直观地了解定积分
今天是高等数学第11篇文章,我们来看看定积分的相关内容。对于很多人来说定积分的内容其实早在高中就已经接触过了,比如在高中物理当中,我们经常使用一种叫做”微元法“的方法来解决一些物理问题。但实际上所谓的”微元法“本质上来说其实就是一种微积分计算方法。我们来看两个简单的例子。微分与积分的例子第一个例子是
动态规划入门——动态规划与数据结构的结合,在树上做DP
今天是算法与数据结构的第15篇,也是动态规划系列的第4篇。之前的几篇文章当中一直在聊背包问题,不知道大家有没有觉得有些腻味了。虽然经典的文章当中背包一共有九讲,但除了竞赛选手,我们能理解到单调优化就已经非常出色了。像是带有依赖的背包问题,和混合背包问题,有些剑走偏锋,所以这里不多做分享。如果大家感兴
【硬核】机器学习与数据结构的完美结合——KD-tree
今天是机器学习的第15篇文章,之前的文章当中讲了Kmeans的相关优化,还讲了大名鼎鼎的EM算法。有些小伙伴表示喜欢看这些硬核的,于是今天上点硬菜,我们来看一个机器学习领域经常用到的数据结构——KD-Tree。从线段树到KD树在讲KD树之前,我们先来了解一下线段树的概念。线段树在机器学习领域当中不太
Python——带你五分钟了解函数式编程与闭包
今天是Python专题的第9篇文章,我们来聊聊Python的函数式编程与闭包。函数式编程函数式编程这个概念我们可能或多或少都听说过,刚听说的时候不明觉厉,觉得这是一个非常黑科技的概念。但是实际上它的含义很朴实,但是延伸出来许多丰富的用法。在早期编程语言还不是很多的时候,我们会将语言分成高级语言与低级