
趣学数据结构
趣学算法
热衷一切有趣的算法,乐在其中,QQ群514626235答疑。
著作:《趣学算法》《趣学数据结构》《算法训练营》(入门篇、提高篇、进阶篇)。
展开
-
算法特训营第15周刷题题目
算法特训营本周内容:1. 录播视频:01背包、完全背包、多重背包、分组背包、混合背包。2. 直播刷题题目:POJ3624、HDU1114、POJ1276、HDU1712。友情提示:以下是直播刷题链接(收费),不需要看直播请忽略。【直播地址】https://www.epubit.com/courseDetails?id=PCCbf16b01a6788&recommenderCode=1540556欢迎大家一起刷题。...原创 2021-08-02 22:14:44 · 224 阅读 · 0 评论 -
算法特训营第14周刷题题目
算法特训营本周内容:1. 录播视频:线性DP,区间DP。2. 直播刷题题目:POJ2533、POJ1458、HDU3506、POJ1651。友情提示:以下是直播刷题链接(收费),不需要看直播请忽略。【直播地址】https://www.epubit.com/courseDetails?id=PCCbf16b01a6788&recommenderCode=1540556欢迎大家一起刷题。...原创 2021-08-02 22:10:57 · 209 阅读 · 0 评论 -
算法特训营第13周刷题题目
算法特训营本周内容:1. 录播视频:线段树。2. 直播刷题题目:HDU1166、POJ3468、HDU4902、POJ2777。友情提示:以下是直播刷题链接(收费),不需要看直播请忽略。【直播地址】https://www.epubit.com/courseDetails?id=PCCbf16b01a6788&recommenderCode=1540556欢迎大家一起刷题。...原创 2021-08-02 22:07:58 · 146 阅读 · 0 评论 -
算法特训营第12周刷题题目
算法特训营本周内容:1. 录播视频:树状数组,二维树状数组。2. 直播刷题题目:POJ2352、POJ3067、POJ3321、POJ1195。友情提示:以下是直播刷题链接(收费),不需要看直播请忽略。【直播地址】https://www.epubit.com/courseDetails?id=PCCbf16b01a6788&recommenderCode=1540556欢迎大家一起刷题。...原创 2021-07-12 11:03:56 · 162 阅读 · 0 评论 -
算法特训营第11周刷题题目
算法特训营本周内容:1. 录播视频:启发式搜索、A*算法、IDA*算法。2. 直播刷题题目:HDU1043、HDU3567、POJ2449、POJ3134。友情提示:以下是直播刷题链接(收费),不需要看直播请忽略。【直播地址】https://www.epubit.com/courseDetails?id=PCCbf16b01a6788&recommenderCode=1540556欢迎大家一起刷题。...原创 2021-07-03 21:47:45 · 204 阅读 · 0 评论 -
算法工程师成长必备——一套小白也能看懂的算法书
近年来,算法行业异常火爆,算法工程师年薪一般30万~100万。越来越多的人学习算法,甚至很多非专业的人也参加培训或者自学,想转到算法相关的行业。尽管如此,算法工程师仍然面临100万的人才缺口。缺人、急需,算法工程师成为众多企业猎头争抢的对象。计算机的终极是人工智能,而人工智能的核心是算法,算法已经渗透到了包括互联网、商业、金融业、航空、军事等各个社会领域。算法正在改变着这个世界。算法工程师有很多细分:尽管很多算法工程师招聘都要求会机器学习,或数据挖掘、推荐算法、图像识别等,但刚入门者还需要先原创 2021-07-01 15:49:55 · 439 阅读 · 0 评论 -
算法特训营第10周刷题题目
算法特训营本周内容:1. 录播视频:启发式搜索、A*算法、IDA*算法。2.直播刷题题目:HDU1043、HDU3567、POJ2449、POJ3134。友情提示:以下是直播刷题链接(收费),不需要看直播请忽略。【直播地址】https://www.epubit.com/courseDetails?id=PCCbf16b01a6788&recommenderCode=1540556欢迎大家一起刷题。...原创 2021-06-26 16:26:22 · 219 阅读 · 0 评论 -
算法特训营第9周刷题题目
算法特训营本周内容:1. 录播视频:深度优先搜索、回溯法。2.直播刷题题目:UVA572、POJ2488、POJ3624、HDU1530。友情提示:以下是直播刷题链接(收费),不需要看直播请忽略。【直播地址】欢迎大家一起刷题。...原创 2021-06-19 09:47:06 · 176 阅读 · 0 评论 -
算法特训营第8周刷题题目
算法特训营本周内容:1. 录播视频:最小生成树(Prim算法、Kruskal算法)。2.直播刷题题目:POJ1251、POJ1287、POJ2031、POJ2421。友情提示:以下是直播刷题链接(收费),不需要看直播请忽略。【直播地址】https://www.epubit.com/courseDetails?id=PCCbf16b01a6788&recommenderCode=1540556欢迎大家一起刷题。...原创 2021-06-05 12:03:20 · 178 阅读 · 0 评论 -
算法特训营第6周刷题题目
算法特训营本周内容:1. 录播视频:最短路径(Dijsktra、Floyd、Bellman ford、SPFA)。2.直播刷题题目:POJ1797、POJ1860、POJ3259、POJ3268。【陈老师专属链接】https://www.epubit.com/courseDetails?id=PCCbf16b01a6788&recommenderCode=1540556欢迎大家一起刷题。...原创 2021-05-23 16:01:16 · 139 阅读 · 0 评论 -
算法特训营第5周刷题题目
算法特训营本周内容:1. 录播视频:图的存储(邻接矩阵、邻接表、边集数组、链式前向星)。2.直播刷题题目:P3196、UVA11175、POJ3275。【陈老师专属链接】https://www.epubit.com/courseDetails?id=PCCbf16b01a6788&recommenderCode=1540556欢迎大家一起刷题。...原创 2021-05-16 09:45:07 · 246 阅读 · 0 评论 -
算法特训营第4周刷题题目
算法特训营本周视频内容:STL常用函数刷题实战sort函数、nth_element()、lower_bound()/upper_bound()、next_permutation()直播刷题题目:POJ3579、POJ2388、POJ1256、POJ1731。【陈老师专属链接】https://www.epubit.com/courseDetails?id=PCCbf16b01a6788&recommenderCode=1540556欢迎大家一起刷题。...原创 2021-05-02 18:28:28 · 212 阅读 · 0 评论 -
算法特训营第3周刷题题目
算法特训营本周视频内容:set、multiset、map、multimap直播刷题题目:HDU1412、POJ1281、POJ2418、HDU1263。【陈老师专属链接】https://www.epubit.com/courseDetails?id=PCCbf16b01a6788&recommenderCode=1540556欢迎大家一起刷题。...原创 2021-04-19 14:35:25 · 165 阅读 · 0 评论 -
如何入门学算法?
随着科学技术的发展,人工智能已渗透到各个行业,算法工程师非常火爆,急缺大量人才,年薪也越来越高。很多人想入手学习算法,那么多算法,究竟该如何下手呢?原创 2017-11-23 17:13:20 · 28727 阅读 · 1 评论 -
分治法时间复杂度求解秘籍
分治法时间复杂度求解秘籍本文来自快速入门算法书——《趣学算法》 分治法的道理非常简单,就是把一个大的复杂的问题分为a(a>1)个形式相同的子问题,这些子问题的规模为n/b,如果分解或者合并的复杂度为f(n),那么总的时间复杂度可以表示为: 那么如何求解时间复杂度呢?递推求解法 我们上面的求解方式都是递推求解,写出其递推式,最后求出结果。 例如:合并排序原创 2018-01-03 09:33:05 · 11445 阅读 · 6 评论 -
二分搜索技术
例如,给定n个元素序列,这些元素是有序的(假定为升序),从序列中查找元素x。用一维数组S[]存储该有序序列,设变量low和high表示查找范围的下界和上界,middle表示查找范围的中间位置,x为特定的查找元素。1.算法步骤(1)初始化。令low=0,即指向有序数组S[]的第一个元素;high=n−1,即指向有序数组S[]的最后一个元素。(2)判定low≤high是否成立,如果成立,转向第3步,否则,算法结束。(3)middle=(low+high)/2,即指向查找范围的中间元素。如果数原创 2021-04-01 21:06:59 · 1179 阅读 · 0 评论 -
最近公共祖先LCA
最近公共祖先(Lowest Common Ancestors,LCA)指有根树中距离两个节点最近的公共祖先。祖先指从当前节点到树根路径上的所有节点。u和v的公共祖先指一个节点既是u的祖先,又是v的祖先。u和v的最近公共祖先指距离u和v最近的公共祖先。若v是u的祖先,则u和v的最近公共祖先是v。 可以使用LCA求解树上任意两点之间的距离。求u和v之间的距离时,若u和v的最近公共祖先为lca,则u和v之间的距离为u到树根的距离加上v到树根的距离减去2倍的lca到树根的距离:...原创 2021-04-28 10:03:45 · 368 阅读 · 0 评论 -
链式前向星——最完美图解
图的存储方法很多,最常见的除了邻接矩阵、邻接表和边集数组外,还有链式前向星。链式前向星是一种静态链表存储,用边集数组和邻接表相结合,可以快速访问一个顶点的所有邻接点,在算法竞赛中广泛应用。链式前向星存储包括两种结构:边集数组:edge[ ],edge[i]表示第i条边; 头结点数组:head[ ],head[i]存以i为起点的第一条边的下标(在edge[]中的下标)struct node{ int to,next,w;}edge[maxe];//边集数组,边数一般要设置比ma...原创 2021-05-18 22:35:14 · 9205 阅读 · 7 评论 -
算法特训营第7周刷题题目
算法特训营本周内容:1. 录播视频:最短路径(Dijsktra、Floyd、Bellman ford、SPFA)。2.直播刷题题目:POJ1797、POJ1860、POJ3259、POJ3268。【陈老师专属链接】https://www.epubit.com/courseDetails?id=PCCbf16b01a6788&recommenderCode=1540556欢迎大家一起刷题。...原创 2021-05-29 10:49:16 · 435 阅读 · 0 评论 -
数据结构与算法知识图谱
整理了一个知识图谱,数据结构与算法学习框架,大家可以根据需要选学。 学习数据结构与算法的好处,除了进大厂拿高薪,最重要的是锻炼扎实内功,培养算法思维,拥有超强学习力。透过问题看本质,思维清晰,竞争必胜,吵架能赢...原创 2021-04-19 21:43:13 · 906 阅读 · 0 评论 -
算法特训营第2周刷题题目
算法特训营本周视频内容:list、deque、priority_queue直播刷题题目:HDU1276、HDU6375、POJ2833、HDU4006。【陈老师专属链接】https://www.epubit.com/courseDetails?id=PCCbf16b01a6788&recommenderCode=1540556欢迎大家一起刷题。...原创 2021-04-11 13:40:45 · 162 阅读 · 0 评论 -
历经磨难,新书终于出版
成熟的作品,熟练、专业、认真的作者,书籍内容好,表述规范,编辑加工也规范、认真,整体质量很好,是难得的好作品。 ——《算法训练营:海量图解+竞赛刷题》终审意见非常感谢审稿专家对我的极大认可。两年写作,半年修改,92万...原创 2021-03-29 15:01:05 · 710 阅读 · 8 评论 -
算法特训营第1周直播刷题题目
算法特训营本周视频内容:vector、stack、queue,直播刷题题目:HDU3527、POJ3349、POJ1028、POJ1915。【陈老师专属链接】https://www.epubit.com/courseDetails?id=PCCbf16b01a6788&recommenderCode=1540556欢迎跟着一起刷题。...原创 2021-03-24 11:08:19 · 273 阅读 · 0 评论 -
算法训练营3.27开营,跟我一起来刷题!
算法训练营3.27开营,跟我一起刷题,5个月掌握六大算法模块!可找我领600优惠券【陈老师专属链接】 https://www.epubit.com/courseDetails?id=PCCbf16b01a6788&recommenderCode=1540556 直播知识点详解+竞赛刷题,赠送C++语言基础课。...原创 2021-03-03 15:00:59 · 599 阅读 · 2 评论 -
我的免费算法公开课要开讲了,欢迎捧场。
加QQ群812397944查看原创 2020-12-10 10:55:06 · 270 阅读 · 0 评论 -
别头疼了,你要的算法和数据结构的学习路线来了!
随着科学技术的发展,人工智能已经逐渐渗透到各个行业,这是一个相当有前景的专业领域。其中,算法工程师这一职位更是非常火爆,在急缺大量人才的同时,也吸引了众多求职者,那么,初学者该如何学好算法呢?算法工程师的具体分支:其次,算法工程师的必备技能:▲至少熟悉一门编程语言 C/C++/java/python/R;▲功底;熟练运用各种常用算法和数据结构,有...原创 2020-04-09 14:29:42 · 1328 阅读 · 1 评论 -
如何学好数据结构与算法(视频+文字版)
如何学好数据结构与算法陈小玉《趣学数据结构》《趣学算法》作者主题:为什么要学数据结构 数据结构学习秘籍 算法为什么那么难 算法学习秘籍 如何打开数据结构与算法这两扇门随着科学技术的发展,人工智能已渗透到各个行业,算法工程师非常火爆,急缺大量人才,年薪也越来越高。刚毕业30-40万很常见。很多人想入手学习算法,那么多算法,究竟该如何下手呢?很多人看到招聘要求,算法工程师...原创 2020-02-22 11:26:44 · 3446 阅读 · 3 评论 -
打开算法和数据结构的两扇门,这样程序的灵魂和骨架就都有了
瑞士著名的科学家N.Wirth教授曾提出:数据结构+算法=程序。数据结构是程序的骨架,算法是程序的灵魂。当我们遇到一个实际问题时,首先需要解决两件事:(1)如何将数据存储在计算机中;(2)用什么方法和策略解决问题。前者是数据结构,后者是算法。只有数据结构没有算法,相当于只把数据存储到计算机中,而没有有效的方法去处理,就像一幢只有框架的烂尾楼;若只有算法,没有数据结构,就像沙漠里的海市蜃楼,...转载 2020-02-18 22:20:55 · 547 阅读 · 0 评论 -
数据结构与算法?看这篇就够了!
数据结构与算法?看这篇就够了!幂次学院算法爱好者昨天程序 = 数据结构 + 算法——图灵奖得主,计算机科学家N.Wirth(沃斯)幂次学院,“人工智能”公众号旗下教育品牌特推出数据结构与算法系统大课 133节讲解+133节刷题,一共266节课每节课一小时,共266小时作为程序员,我们做机器学习也好,做Python开发也好,...原创 2019-12-20 09:29:50 · 1967 阅读 · 1 评论 -
数据结构 第10讲 好玩贪吃蛇——数字矩阵
好玩贪吃蛇 上题目: 这是螺旋状的分布啊,有点像棒棒糖上面的圆圈圈。那么怎么解呢? 一种思路:先填外围一圈,然后把内部看作一个子问题,继续填充。 即前面的4*n-4个元素顺时针填充外围, 剩下的问题变成用后面的元素填充一个规模为n-2的子问题。 再用剩余元素的前面4*(n-2)-4个元素顺时针填充规模为n-2的子问题外围, 剩下的问题变成用后面的原创 2017-10-20 16:21:28 · 4774 阅读 · 0 评论 -
数据结构 第5讲 顺序栈
数据结构 第5讲 顺序栈小张终于攒钱买了车,可是他家住在胡同的尽头,胡同很窄,只能通过一辆车,而且是死胡同,每天小张都为停车发愁,回家早了停在里面,早上上班就要让所有的人挪车,先让胡同口那辆出去,然后挨着一辆一辆出去,小张才能去上班。没办法,小张下班也不敢早回家了,等天黑了别的车都停进去了,再回去把车停在胡同口,这样早上就可以第一个去上班了。就这样,过起了"起早贪黑"的有车生活。 我们原创 2017-09-27 16:39:35 · 2259 阅读 · 3 评论 -
数据结构 第11讲 二叉树及其创建
数据结构 第11讲 二叉树及其创建 二叉树(Binary Tree)是n(n≥0)个结点所构成的集合,它或为空树(n = 0);或为非空树,对于非空树T: (1)有且仅有一个称之为根的结点; (2)除根结点以外的其余结点分为两个互不相交的子集T1和T2,分别称为T的左子树和右子树,且T1和T2本身又都是二叉树。 也就是说,二叉树最多有两个"叉",即最原创 2017-11-08 10:22:24 · 2365 阅读 · 0 评论 -
数据结构 第9讲 数组与广义表
数据结构 第9讲 数组与广义表 数组是由相同类型的数据元素构成的有序集合。一维数组看一看作一个线性表,例如: 图1 一维数组 二维数组也可以看作一个线性表,例如: 图2 二维数组(按列序) 是不是可以看作一个线性表X=(X0,X1,X2,…,Xn-1)?只不过每一个数据元素Xi也是一个线性表。 那么,横看成岭侧成峰: 图3 二维数组原创 2017-10-19 16:45:28 · 1014 阅读 · 0 评论 -
数据结构 第6讲 链栈
数据结构 第6讲 链栈进出的一端称为栈顶(top),另一端称为栈底(base)。栈可以用顺序存储,也可以用链式存储。顺序栈和链栈图解: 顺序栈是分配一段连续的空间,需要两个指针,base指向栈底,top指向栈顶。而链栈每个结点的地址是不连续的,只需要一个栈顶指针即可。从上图可以看出,链栈的每个结点都包含两个域,数据域和指针域,是不是和单链表一模一样?那么我们就可以按单原创 2017-10-10 10:07:22 · 32274 阅读 · 1 评论 -
数据结构 第3讲 顺序表
数据结构 第3讲 顺序表顺序表是最简单的一种线性结构,逻辑上相邻的数据在计算机内的存储位置也是相邻的,可以快速定位第几个元素,中间不允许有空,所以插入、删除时需要移动大量元素。顺序表可以分配一段连续的存储空间Maxsize,用elem记录基地址,用length记录实际的元素个数,即顺序表的长度, 结构体的定义: 结构体定义后,如果要定义个顺序表L,就可以写:SqLis原创 2017-09-12 16:35:55 · 4334 阅读 · 0 评论 -
KMP算法完美图解
数据结构 第8讲 KMP算法 讲这个算法之前,我们首先了解几个概念: 串:又称字符串,是由零个或多个字符组成的有限序列。如S="abcdef"字串:串中任意个连续的字符组成的子序列,称为该串的子串,原串称为字串的主串。如T="cde",T是S的子串。子串在主串中的位置,用子串的第一个字符在主串中出现的位置表示。T在S中的位置为3。 模式匹配:子串原创 2017-09-29 09:01:34 · 3022 阅读 · 4 评论 -
数据结构 第4讲 单链表
数据结构 第4讲 单链表链表是线性表的链式存储方式,逻辑上相邻的数据在计算机内的存储位置不一定相邻,那么怎么表示逻辑上的相邻关系呢?可以给每个元素附加一个指针域,指向下一个元素的存储位置。如图所示: 从图中可以看出,每个结点包含两个域:数据域和指针域,指针域存储下一个结点的地址,因此指针指向的类型也是结点类型。结点结构体的定义: 定义了结点之后,我们就可以把若干个结点连接在原创 2017-09-20 10:02:38 · 3039 阅读 · 9 评论 -
数据结构 第2讲 算法复杂性
该内容来源于本人著作《趣学算法》在线章节:http://www.epubit.com.cn/book/details/4825如果说数学是皇冠上的一颗明珠,那么算法就是这颗明珠上的光芒,算法让这颗明珠更加熠熠生辉,为科技进步和社会发展照亮了前进的路。数学是美学,算法是艺术。走进算法的人,才能体会它的魅力。多年来,我有一个梦想,希望每一位提到算法的人,不再立即紧皱眉头,脑海闪现枯燥的公式、冗长的代码...原创 2017-09-11 09:12:29 · 2032 阅读 · 4 评论 -
数据结构 第1讲 基础知识
数据结构 第1讲 基础知识著名的瑞士科学家N.Wirth教授提出:数据结构+算法=程序。数据结构是程序的骨架,算法则是程序的灵魂。学习数据结构首先从几个概念开始:数据:所有能输入到计算机中去的描述客观事物的符号。原创 2017-09-05 17:53:44 · 3019 阅读 · 4 评论 -
数据结构 第4-2讲 双向链表
数据结构 第4-2讲 双向链表 链表是线性表的链式存储方式,逻辑上相邻的数据在计算机内的存储位置不一定相邻,那么怎么表示逻辑上的相邻关系呢? 可以给每个元素附加一个指针域,指向下一个元素的存储位置。这种链表称为单向链表,简称单链表,如图1所示: 图1 单链表 单链表中每个结点除了存储自身数据之后,还存储了下一个结点的地址,因此可以轻松访问下一原创 2017-11-21 16:17:41 · 1817 阅读 · 0 评论