DSt:数据结构的最强学习路线之数据结构知识讲解与刷题平台、刷题集合、问题为导向的十大类刷题算法(数组和字符串、栈和队列、二叉树、堆实现、图、哈希表、排序和搜索、动态规划/回溯法/递归/贪心/分治)总结

目录

数据结构的最强学习路线之问题为导向的十大类刷题算法总结

一、学习相关的讲解与刷题平台

1.1、数据结构+算法可视化

1.2、常见的刷题平台及其链接

国外平台

国内平台

二、刷题集合

DayDayUp之Job:牛客网—算法工程师—剑指offer之66道在线编程(解决思路及其代码)——1~20

DayDayUp之Job:LeetCode—算法工程师—面试必考精华版75 题覆盖全量考点之LeetCode75(解决思路及其代码)

三、常见的十大类考试题型

1、数组Arrays和字符串Strings

2、链表(Linked List)

3、栈和队列(Stacks and Queues)

4、树和二叉树(Trees and Binary Trees)

堆的实现、堆排序、

5、图(Graph)

6、哈希表(Hash Table)

7、排序和搜索(Sorting and Searching)

8、动态规划(Dynamic Programming)

9、回溯法(Backtracking)

10、递归

11、贪心算法

12、分治算法


数据结构的最强学习路线之问题为导向的十大类刷题算法总结

一、学习相关的讲解与刷题平台

1.1、数据结构+算法可视化

USFCA

美国旧金山大学

Data Structure Visualization

Backtracking - Hamiltonean Cycles

VisuAlgo

数据结构和算法动态可视化 (Chinese) - VisuAlgo

数据结构复杂度

Big-O Algorithm Complexity Cheat Sheet (Know Thy Complexities!) @ericdrowell

1.2、常见的刷题平台及其链接

国外平台

平台

简介

地址

LeetCode

LeetCode是一个在线的技术面试准备平台,它提供了各种算法和数据结构的编程题目,供开发者练习和提高他们的编程技能。LeetCode平台上的题目主要涵盖了各种编程语言和技术领域,包括但不限于算法、数据结构、数据库、系统设计和面试题等。

2011年,LeetCode起源于美国硅谷。

2015年,转型为互联网技术人才成长平台。

2017年,张云浩加入,在其努力下,LeetCode 当年底全球用户就已破百万。

2018年2月,力扣正式进入中国,中文平台于同月测试上线。

LeetCode - The World's Leading Online Programming Learning Platform

HackerRank

HackerRank提供了各种编程题目和算法挑战,适合不同难度和领域的开发者。它还提供了竞赛和实时编程环境,可以测试和评估编程技能。

HackerRank - Online Coding Tests and Technical Interviews

CodeSignal

CodeSignal是一个在线编程和技能评估平台,提供了大量的算法题目和编程挑战。它还提供了专门用于技能评估和面试准备的功能。

CodeSignal - Technical Interview & Assessment Solution

Project Euler

Project Euler是一个以数学和计算机科学问题为基础的刷题平台。它提供了一系列具有挑战性的问题,旨在锻炼解决问题和编程技巧。

https://projecteuler.net

Topcoder

Topcoder是一个面向开发者的竞赛平台,提供了各种算法竞赛和编程挑战。它还有一个题库,包含了许多经典的算法和数据结构问题。

Top Website Designers, Developers, Freelancers for Your Next Project | Topcoder

国内平台

平台

简介

地址

牛客网

牛客网成立于 2014年9月,牛客网,是一个集笔面试系统、题库、课程教育、社群交流、招聘内推于一体的招聘类网站。

牛客网 - 找工作神器|笔试题库|面试经验|实习招聘内推,求职就业一站解决_牛客网

Lintcode

lintcode炼码是一个leetcode中文版刷题平台,能够让我们通过在线实操的方式,提升编程能力。九章算法(杭州)科技有限公司。

LintCode 炼码

二、刷题集合

DayDayUp之Job:牛客网—算法工程师—剑指offer之66道在线编程(解决思路及其代码)——1~20

https://yunyaniu.blog.csdn.net/article/details/100822646

DayDayUp之Job:LeetCode—算法工程师—面试必考精华版75 题覆盖全量考点之LeetCode75(解决思路及其代码)

https://yunyaniu.blog.csdn.net/article/details/130716205

三、常见的十大类考试题型

涉及到数组和链表的遍历、插入、删除等操作。典型例题有两数之和、删除链表的倒数第N个节点等。

基本

数组、字符串、排序、矩阵、模拟、枚举、字符串匹配、桶排序、计数排序、基数排序

算法

动态规划、深度优先搜索、贪心、广度优先搜索、二分查找、回溯、递归、分治、记忆化搜索、归并排序、快速选择

基础数据结构

哈希表、树、二叉树、栈、堆(优先队列)、图、链表、有序集合、二叉搜索树、单调栈、队列、拓扑排序、最短路、单调队列

高级数据结构

并查集、字典树、线段树、树状数组、后缀数组

技巧

双指针、位运算、前缀和、计数、滑动窗口、状态压缩、哈希函数、滚动哈希、扫描线

数学

数学、几何、数论博弈、组合数学、随机化、概率与统计、水塘抽样、拒绝采样

1、数组Arrays和字符串Strings

包括数组操作、字符串处理、子数组/子串问题等。

数组操作(插入、删除、查找等)

字符串操作(查找、替换、翻转等)

子数组问题(最大子数组和、连续子数组等)

涉及到字符串的匹配、替换、删除等操作。典型例题有最长公共前缀、正则表达式匹配等。

如回文串、字符串相乘等。

数组操作

LeetCode54 螺旋矩阵

LeetCode76 最小覆盖子串

LeetCode75 颜色分类

LeetCode73 矩阵置零

LeetCode384 打乱数组

LeetCode581 最短无序连续子数组

LeetCode945 使数组唯一的最小增量

2、链表(Linked List)

包括链表的插入、删除、反转、环检测等操作,以及链表相关的问题如合并链表、判断链表是否相交等。

链表操作(插入、删除、查找等)

链表反转

链表中环的检测和处理

链表操作

快慢指针遍历

LeetCode206 反转链表

LeetCode19 删除链表的倒数第N个节点

LeetCode25 k个一组翻转链表

LeetCode141 环形链表

LeetCode142 环形链表Ⅱ

LeetCode61 旋转链表

LeetCode138 复制带随机指针的链表

LeetCode160 相交链表

LeetCode707 设计链表

LeetCode141 环形链表

LeetCode202 快乐数

LeetCode876 链表的中间结点

3、栈和队列(Stacks and Queues)

包括栈和队列的实现、应用和常见问题,如最小栈、括号匹配、队列实现栈等。

栈的应用(括号匹配、后缀表达式求值等)

队列的应用(滑动窗口、任务调度等)

涉及到栈和队列的实现及其应用。典型例题有有效的括号、滑动窗口最大值等。

优先队列的应用和常见问题如前K个高频元素、合并K个排序数组等。

双指针/滑动窗口

LeetCode20 有效的括号

LeetCode32 最长有效括号

LeetCode155 最小栈

LeetCode224 基本计算器

LeetCode232 用栈实现队列

LeetCode316 去除重复字母

LeetCode3 无重复字符的最长子串

LeetCode11 盛最多水的容器

LeetCode15 三数之和

LeetCode16 最接近的三数之和

LeetCode26 删除排序数组中的重复项

LeetCode42 接雨水

LeetCode121 买卖股票的最佳时机

LeetCode209 长度最小的子数组

4、树和二叉树(Trees and Binary Trees)

包括树和二叉树的遍历(前序、中序、后序、层序)、构建、操作和常见问题如验证二叉搜索树、求二叉树的最大深度等。

二叉树的遍历(前序、中序、后序、层次遍历)

二叉树的构建和修改

递归问题(斐波那契数列、汉诺塔等)

涉及到二叉树、二叉搜索树以及其他树的遍历、构造、查询等操作。典型例题有二叉树的中序遍历、路由器的最短路径等。

二叉树

二叉搜索树

LeetCode94 二叉树的中序遍历

LeetCode102 二叉树的层次遍历

LeetCode110 平衡二叉树

LeetCode144 二叉树的前序遍历

LeetCode145 二叉树的后序遍历

LeetCode98 验证二叉搜索树

LeetCode450 删除二叉搜索树中的节点

LeetCode701 二叉搜索树中的插入操作

堆的实现、堆排序、

5、图(Graph)

包括图的表示方法(邻接矩阵、邻接表)、遍历算法(深度优先搜索、广度优先搜索)和常见问题如查找最短路径、判断图是否连通等。

图的遍历(深度优先搜索、广度优先搜索)

最短路径问题(Dijkstra算法、Floyd-Warshall算法)

最小生成树问题(Kruskal算法、Prim算法)

涉及到图的遍历和最短路径算法。典型例题有岛屿数量、课程表等。

深度优先搜索与广度优先搜索。如单词接龙、 autonomous driving path planning等。

6、哈希表(Hash Table)

包括哈希表的实现、冲突解决方法、哈希函数设计和相关问题如两数之和、字母异位词分组等。涉及到哈希表的实现和查询等操作。典型例题有两个列表的交集、检查数组相对大小等。

7、排序和搜索(Sorting and Searching)

包括各种排序算法(冒泡排序、快速排序、归并排序等)和搜索算法(二分查找、深度优先搜索、广度优先搜索等)以及相关问题。
排序和查找
常见排序算法(快速排序、归并排序、堆排序等)
二分查找
哈希查找
如插入排序、归并排序、快速排序等。

8、动态规划(Dynamic Programming)

包括动态规划的概念、解题思路和常见问题如背包问题、最长递增子序列等。
最长公共子序列(LCS)
最长递增子序列(LIS)
背包问题(0-1背包、完全背包等)
涉及到动态规划的定义和实现。典型例题有爬楼梯、零钱兑换等。
最长公共子序列、爬楼梯等。

动态规划

LeetCode5 最长回文子串

LeetCode53 最大子序和

LeetCode62 不同路径

LeetCode64 最小路径和

LeetCode70 爬楼梯

LeetCode118 杨辉三角

LeetCode300 最长上升子序列

LeetCode1143 最长公共子序列

9、回溯法(Backtracking)

包括回溯法的原理、解题思路和典型问题如全排列、组合总和等。
全排列问题
N皇后问题
图的着色问题
涉及到回溯法的实现。典型例题有组合总和、字母异位词分组等。

回溯算法

LeetCode10 正则表达式匹配

LeetCode22 括号生成

LeetCode40 组合总和2

LeetCode46 全排列

10、递归

涉及到递归的定义和实现。典型例题有斐波那契数、N皇后问题等。

递归

LeetCode21 合并两个有序链表

LeetCode101 对称二叉树

LeetCode104 二叉树的最大深度

LeetCode226 翻转二叉树

LeetCode236 二叉树的最近公共祖先

11、贪心算法

区间调度问题
最小生成树问题(Kruskal算法、Prim算法)
霍夫曼编码

贪心算法

LeetCode 11. 盛最多水的容器

LeetCode 406. 根据身高重建队列

LeetCode 55. 跳跃游戏

LeetCode 122. 买卖股票的最佳时机 II

LeetCode 309. 最佳买卖股票时机含冷冻期

LeetCode 714. 买卖股票的最佳时机含手续费

12、分治算法

归并排序
快速排序
大整数乘法(Karatsuba算法)

DSt:数据结构的最强学习路线之数据结构知识讲解与刷题平台、刷题集合、问题为导向的十大类刷题算法(数组和字符串、栈和队列、二叉树、堆实现、图、哈希表、排序和搜索、动态规划/回溯法/递归/贪心/分治)总相关推荐

  1. DSt:数据结构的简介、最强学习路线(逻辑结构【数组-链表-栈和队列/树-图-哈希】、物理结构、数据运算【十大排序/四大查找-图三大搜索-树三大遍历】、高级算法【贪心/分治/动态规划】之详细攻略

    DSt:数据结构的简介.最强学习路线(逻辑结构[数组-链表-栈和队列/树-图-哈希].物理结构[元素/关系].数据运算[十大排序/四大查找-图三大搜索-树三大遍历].高级算法[贪心/分治/动态规划]) ...

  2. CV:计算机视觉技最强学习路线之CV简介(传统视觉技术/相关概念)、早期/中期/近期应用领域(偏具体应用)、经典CNN架构(偏具体算法)概述、常用工具/库/框架/产品、环境安装、常用数据集、编程技巧

    CV:计算机视觉技最强学习路线之CV简介(传统视觉技术/相关概念).早期/中期/近期应用领域(偏具体应用).经典CNN架构(偏具体算法)概述.常用工具/库/框架/产品.环境安装.常用数据集.编程技巧 ...

  3. CV:计算机视觉技最强学习路线

    CV:计算机视觉技最强学习路线之CV简介(传统视觉技术/相关概念).早期/中期/近期应用领域(偏具体应用).经典CNN架构(偏具体算法)概述.常用工具/库/框架/产品.环境安装.常用数据集.编程技巧_ ...

  4. 数据结构与算法第二章 线性表、栈、队列、数组、字符串、树、二叉树、哈希表的增删查

    03 增删查:掌握数据处理的基本操作,以不变应万变 通过前面课时的学习,相信你已经建立了利用数据结构去完成时空转移的思想.接下来,你需要在理论思想的指导下灵活使用.其实,要想灵活使用数据结构,你需要先 ...

  5. DS:机器学习之数据科学方向最强学习路线之数据分析、数据挖掘、机器学习工程化团队之详细攻略(更新中)

    DS:机器学习之数据科学方向最强学习路线之数据分析.数据挖掘.机器学习工程化团队之详细攻略(更新中) 目录 最强学习路线 DS市场岗位要求 DS应用领域 基本必备技能

  6. DS/ML:数据科学技术之数据科学生命周期(四大层次+机器学习六大阶段+数据挖掘【5+6+6+4+4+1】步骤)的全流程最强学习路线讲解之详细攻略

    DS/ML:数据科学技术之数据科学生命周期(四大层次+机器学习六大阶段+数据挖掘[5+6+6+4+4+1]步骤)的全流程最强学习路线讲解之详细攻略 导读:本文章是博主在数据科学和机器学习领域,先后实战 ...

  7. C++语言:C语言/C++语言的简介、发展历史、应用领域、编程语言环境IDE安装、最强学习路线之详细攻略

    C++语言:C语言/C++语言的简介.发展历史.应用领域.编程语言环境IDE安装.最强学习路线之详细攻略 目录 C语言/C++语言的简介 1.C语言的历史重要性-C语言是现代编程语言的开山鼻祖

  8. 20210310 20210311 :栈、队列、堆类题目合集

    栈.队列.堆类题目合集 写在前面 题目列表 思路分析 代码实现 写在前面 栈.队列.堆基本的题目就是这些,需要特殊技巧的另算,重写一遍保证熟练掌握这些题目并且达到熟练使用的程度.记录以便后续再次学习. ...

  9. 【数据结构】栈、队列、堆的python实现

    [数据结构]栈.队列.堆的python实现 一.栈的python实现 1.1.栈的列表实现方法 1.2.用双向队列模拟栈 二.队列的python实现 2.1.队列的列表实现 2.2.使用deque实现 ...

最新文章

  1. 作业盒子完成1.5亿美元D轮融资,用AI普及教育资源
  2. 将特定像素点在图像上连接起来_(NeurIPS 2019) Gated CRF Loss-一种用于弱监督图像语义分割的新型损失函数...
  3. kali-linux 完美解决sublime输入 中文
  4. 永久代内存java_Java8内存模型—永久代(PermGen)和元空间(Metaspace)
  5. 小程序时间转换成时间戳
  6. 怎么发表论文能保证被收录
  7. CodeForces - 1535C Unstable String(思维)
  8. 计算机桌面运行慢,电脑越来越慢原因 电脑运行慢解决方法【详解】
  9. 程序员面试金典 - 面试题 01.08. 零矩阵
  10. [编程] C语言变量和数据类型总结练习题
  11. 浏览计算机已查找驱动程序软件,欢迎访问海南省数字证书认证中心
  12. 听说Unscrambler HSI是个很牛的光谱分析软件?
  13. UML常用图--类图,用例图,序列图(时序图),协作图(通信图),状态图,活动图
  14. 树莓派系列五:openCV之火焰检测(一)
  15. mysql查询excel表_使用SQL语句实现对Excel工作表数据进行查询的方法
  16. CTF中压缩文件的常见解法
  17. yum是干什么的_刨根问底:什么是yum源,yum的工作原理又是什么
  18. REUSE_ALV_GRID_DISPLAY_LVC-可编辑单元格
  19. Android实现3DTouch效果
  20. SASS实现颜色卡动画

热门文章

  1. Ubuntu的ldconfig详解(解决*.so不是符号连接)
  2. django中cookie模板引用
  3. P2298 Mzc和男家丁的游戏
  4. 同时下载多个文件,同时展示多个文件的下载进度
  5. 放大器电路在设计过程中常见问题分析及如何解决
  6. 《大腕》经典对白 模仿秀(转贴)
  7. 苹果7p最佳系统版本_苹果代码中发现, iPhone12 刘海没了!
  8. CCF201809-3
  9. Excel PivotTable 使用心得手顺分享(三)
  10. carte集群的搭建笔记