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

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

文章来源地址https://uudwc.com/A/Ge5N

目录

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

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

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算法)

原文地址:https://blog.csdn.net/qq_41185868/article/details/130312578

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年06月16日 20:01
1-网络初识——网络发展史
下一篇 2023年06月16日 20:01