《从一到无穷大》中的程序思维
这篇文章是最近几天看李永乐老师的《从一到无穷大》读书专栏而想到的一篇文章。在第一章「做做数学游戏」的简单数学,以及第二章「空间、时间和爱因斯坦」的拓扑学中(其实也是因为李老师目前只更新了这么多 ̄□ ̄||)有很多问题是可以通过计算机思维来思考的。所以这篇我将从计算机程序的角度来讨论《从一到无穷大》有趣
动态规划入门——传说中的零一背包问题
点击上方蓝字,和我一起学技术。今天是周三算法与数据结构专题的第12篇文章,动态规划之零一背包问题。在之前的文章当中,我们一起探讨了二分、贪心、排序和搜索算法,今天我们来看另一个非常经典的算法——动态规划。在acm-icpc竞赛领域,动态规划是一个非常大的范畴,当中包含了许多变种,而且很多变种难度极大
实战 | Kaggle竞赛:预测二手车每年平均价值损失
目录:1、准备数据2、清洗数据3、可视化4、特征工程5、关联性分析6、准备模型7、随机森林本项目带你根据以上过程带你完成Kaggle挑战之旅!01准备数据数据集:Ebay-Kleinanzeigen二手车数据集[有超过370000辆二手车的相关数据]数据字段说明:dateCrawled:当这个广告第
一文带你学会笔试面试常考的Kmeans聚类算法
今天是机器学习专题的第12篇文章,我们一起来看下Kmeans聚类算法。在上一篇文章当中我们讨论了KNN算法,KNN算法非常形象,通过距离公式找到最近的K个邻居,通过邻居的结果来推测当前的结果。今天我们要来看的算法同样非常直观,也是最经典的聚类算法之一,它就是Kmeans。我们都知道,在英文当中Mea
类和函数傻傻分不清楚?三个例子讲明白
前言前两天一位小伙伴问了这样一个问题:虽然已经使用python一年多了,也用python写过很多脚本,代码量从几十行到上千行的也有,但从未使用过类(class),似乎用函数(def)就能解决所有问题,使用类有什么好处?我什么时候该用类呢?关于这个问题,算是困惑了许多刚接触python的同学,那么本文
Python专题——五分钟带你了解map、reduce和filter
今天是Python专题第6篇文章,给大家介绍的是Python当中三个非常神奇的方法:map、reduce和filter。不知道大家看到map和reduce的时候有没有什么感觉,如果看过之前我们大数据系列介绍MapReduce文章的同学,想必有些印象。这个MapReduce不是一个分布式的计算方法么,
LeetCode41, 一道题让你明白 in-place是什么?又怎么设计in-place算法?
今天是LeetCode题解系列第21篇,今天来看一道人狠话不多的题目。今天的题目题面非常简单,只有一句话,给定一个整数数组,要求返回最小的不在数组当中的正整数。看起来有些拗口,简单解释一下。我们都知道正整数就是从1开始的整数,所以这道题就是从1开始找到第一个不在数组当中的元素。我们来看下样例:样例1
一道LeetCode题带我们深入二进制表示、搜索策略和剪枝
难度Medium描述给定一个int类型的候选集,和一个int类型的target,要求返回所有的数字组合,使得组合内所有数字的和刚好等于target。注意:所有的元素都是正数所有元素没有重复答案不能有重复每一个元素可以使用若干次样例1:Input:candidates=[2,3,6,7],target
一点微小的改动,让你从B树理解到B+树
今天是周五分布式系统的第八篇文章,核心内容是B+树的原理。首先和大家道个歉,昨天晚上由于我的失误,发文忘了改标题,引发了一些疑惑。昨天文章的标题应该是“快速求解方程的根——二分法与牛顿迭代法”,我在收录的专题目录当中已经修改,但历史记录无法修改,带来的不便深表歉意。今天的文章是上周B树的延伸,所以新
算法浅谈——走迷宫问题与广度优先搜索
今天是周四高等数学专题的第7篇文章。之前的文章和大家聊了许多数学上的理论,今天和大家聊点有用的东西。我们都知道,工业上的很多问题经过抽象和建模之后,本质还是数学问题。而说到数学问题就离不开方程,在数学上我们可以用各种推算、公式,但是有没有想过在计算机领域我们如何解一个比较复杂的方程?如果之前没有想过
算法浅谈——走迷宫问题与广度优先搜索
在之前周末LeetCode专栏当中,我们详细描述了深度优先搜索和回溯法,所以今天我们继续这个话题,来和大家聊聊搜索算法的另一个分支,广度优先搜索。广度优先搜索的英文是BreadthFirstSearch,简写为bfs。与它相对的深度优先搜索,英文自然就是DepthFirstSearch,简写成dfs
干货 | 教你一文掌握数据预处理
数据分析一定少不了数据预处理,预处理的好坏决定了后续的模型效果,今天我们就来看看预处理有哪些方法呢?记录实战过程中在数据预处理环节用到的方法~主要从以下几个方面介绍:常用方法Numpy部分Pandas部分Sklearn部分处理文本数据一、常用方法1、生成随机数序列randIndex=random.s
机器学习基础——简单易懂的KNN,根据邻居“找自己”
今天的文章给大家分享机器学习领域非常简单的模型——KNN,也就是KNearestNeighbours算法,翻译过来很简单,就是K最近邻居算法。这是一个经典的无监督学习的算法,原理非常直观,易于理解。监督与无监督简单介绍一下监督这个概念,监督是supervised的直译,我个人觉得不太准确,翻译成有标
干货 | 超详细Pyecharts 1.x 教程,让你的图表动起来~
小伙伴们,提到Python可视化工具,你第一直觉还是MatplotLib或者Seaborn吗?那你就out啦,今天我们来看一个更炫酷的可视化工具!1前言Pyecharts在1.x版本之后迎来重大更新,与老版本(0.5X)已是两个完全不同的版本,所以很多小伙伴在使用Pyecharts出现了类似'pye
Python——五分钟带你弄懂迭代器与生成器,夯实代码能力
今天是周一Python专题,给大家带来的是Python当中生成器和迭代器的使用。我当初第一次学到迭代器和生成器的时候,并没有太在意,只是觉得这是一种新的获取数据的方法。对于获取数据的方法而言,我们会一种就足够了。但是在我后来Python的使用以及TensorFlow等学习使用当中,我发现很多地方都用
LeetCode37 使用回溯算法实现解数独,带你理解剪枝优化
数独是一个老少咸宜的益智游戏,一直有很多拥趸。但是有没有想过,数独游戏是怎么创造出来的呢?当然我们可以每一关都人工设置,但是显然这工作量非常大,满足不了数独爱好者的需求。所以常见的一种形式是,我们只会选择难度,不同的难度对应不同的留空的数量。最后由程序根据我们选择的难度替我们生成一个数独问题。但是熟
LeetCode 33,在不满足二分的数组内使用二分的方法
标题SearchinRotatedSortedArray难度Medium描述给定一个升序排列的数组,它被分成两部分之后交换了顺序。要求给定一个元素,返回这个元素的在数组当中的下标,如果不存在返回-1.时间复杂度必须是Supposeanarraysortedinascendingorderisrota
硬核挑战——从零开始动手图解B树
本篇原计划在上周五发布,由于太过硬核所以才拖到了这周五。我相信大家应该能从标题当中体会到这个硬核。周五的专题是大数据和分布式,我最初的打算是和大家分享一下LSM树在分布式存储引擎当中的应用。但是想要能够真正深入理解了LSM的精髓,以及它构思巧妙的点,必须要对传统的数据库的B树和B+树有所了解。所以才
看完这篇让你高数不挂科之——泰勒公式
点击上方蓝字,和我一起学技术。今天的文章我们来讨论大名鼎鼎的泰勒公式,泰勒公式真的非常有名,我相信上过高数课的一定都记得它的大名。即使你翘掉了所有的课,也一定会在考前重点里见过。我对它的第一映像就是比较难,而且感觉没有太多意思,就是一个近似的函数而已。最近重温了一下有了一些新的心得,希望尽我所能讲解
单调栈巧解柱状图最大矩形
预计阅读时间:11分钟这几天群里打卡的几道题都是十分经典的面试题,经典是因为这些题都是一题多解的。在这些高效的解法中,单调栈是一个很有技巧的解法,所以这一次我们来聊聊这个单调栈。所谓单调栈(MonotoneStack)听上去很高端,其实就是字面的意思:栈内元素都是单调递增或者单调递减的。如上图,就是