首页 > 编程语言 >数据结构与算法学习计划

数据结构与算法学习计划

时间:2023-09-19 23:56:17浏览次数:46  
标签:leetcode 学习 算法 https 数据结构 com LeetCode

第一个月: 基础知识和线性结构

  • 学习数据结构基本概念,如数组、链表、栈和队列。

  • 理解线性结构的特点和操作,熟悉它们的实现和应用。

  • 掌握常见线性结构的时间复杂度和空间复杂度分析。
    第二个月: 树与图

  • 学习树形结构,包括二叉树、二叉搜索树、平衡二叉树和堆。

  • 理解树的遍历算法,包括前序、中序和后序遍历。

  • 学习图的基本概念和表示方法,熟悉图的遍历和最短路径算法。
    第三个月: 散列和字符串

  • 学习散列结构,包括散列表和哈希函数的原理和应用。

  • 掌握散列冲突解决方法,如链表法和开放地址法。

  • 学习字符串的基本操作和匹配算法,如暴力匹配和KMP算法。
    第四个月: 排序和搜索

  • 学习各种常见的排序算法,如冒泡排序、插入排序、选择排序、快速排序和归并排序。

  • 理解每种排序算法的原理、时间复杂度和稳定性。

  • 学习常见的搜索算法,如线性搜索和二分搜索。
    第五个月: 动态规划和高级数据结构

  • 理解动态规划的基本思想和应用场景。

  • 学习动态规划的解题技巧,如状态定义、状态转移方程和子问题划分。

  • 探索高级数据结构,如红黑树、B树、Trie树和图的高级算法。

经典面试题
LeetCode 精选 100 道:https://leetcode-cn.com/problem-list/2cktkvj/
LeetCode 精选算法 200 题:https://leetcode-cn.com/problem-list/qg88wci/
文章
刷了 1000 多道算法题,一点心得:https://t.1yb.co/oT9q (鱼皮原创)
在线教程
LeetCode LeetBook:https://leetcode-cn.com/leetbook/
在线刷题
LeetCode:https://leetcode-cn.com/
书籍
⭐《小灰的漫画算法》
⭐《剑指 Offer》
《程序员代码面试指南》
图解算法数据结构:https://leetcode-cn.com/leetbook/detail/illustration-of-algorithm/
LeetCode 101(C++):https://github.com/changgyhub/leetcode_101
LeetCode 题解(C++):https://github.com/soulmachine/leetcode
LeetCode Cookbook(Go 语言):https://github.com/halfrost/LeetCode-Go
视频
尚硅谷 Java 数据结构与算法:https://www.bilibili.com/video/BV1E4411H73v (难度比面试的要求大一些,适合希望更全面学习的朋友)
Leetcode 真题解析:https://www.bilibili.com/video/BV1a54y1b74k
工具
VisuAlgo 数据结构和算法动态可视化:https://visualgo.net/zh
数据结构可视化:https://www.cs.usfca.edu/~galles/visualization/Algorithms.html
RegExr:https://www.code-nav.cn/rd/?rid=79550af2601114e9012110711798772b (学习、创建和测试正则表达式的在线可视化工具)
网站
五分钟学算法:https://www.cxyxiaowu.com/

标签:leetcode,学习,算法,https,数据结构,com,LeetCode
From: https://www.cnblogs.com/lvyong/p/17716202.html

相关文章

  • 十大排序算法总结及其Java代码实现
    概述基于比较的排序算法,常见的有以下几种算法最好最坏平均空间稳定性思想注意事项冒泡排序O(n)O(n^2)O(n^2)O(1)是比较最好情况需要额外判断选择排序O(n^2)O(n^2)O(n^2)O(1)否比较顺序选择元素,交换次数较多,不适合大规模数据堆排序O(nlogn)O(nlogn)O(nlogn)O(1)否选择需要使用到数据......
  • 学习C语言的第六天
    先说下今天的心情吧,今天看的课感觉真的是开始上难度了,有一些逻辑复杂的地方要把视频反复看四五遍才能明白,不知道我这种笨蛋能不能学好C语言。。。还是对自己得有点信心,肯定能学好!下面是今天的内容啦!For循环之前不是很明白for循环和while循环的区别,这两天在chatgpt刨根问底了一下,总......
  • 学习的目的是什么?
    学习的目的不该是踩低别人彰显自己,也不是为了争口气证明什么,更不该是找份工作仅仅为稻梁谋。学习是利用已有的知识和技能,丰富自己,帮助自己更好的理解这世界;完善自己,帮助自己开拓进取;升华自己,使自己在生活的苟且之余能仰望星空;贡献自己,力争为人类的文明和进步付出自己应有的一份力量......
  • 马毅教授新作:白盒ViT成功实现分割涌现,经验深度学习时代即将结束?
    前言 CRATE模型完全由理论指导设计,仅用自监督学习即可实现分割语义涌现。本文转载自新智元仅用于学术分享,若侵权请联系删除欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。CV各大方向专栏与各个部署框架最全教程整理【CV技......
  • Vue学习八:vue3
    一、vue3创建项目与介绍vue3创建项目与vue2使用vue-cli(基于webpack)脚手架不同,vue3使用create-vue(基于vite,更快)。创建项目的指令如下,首先看一下node的版本(node-v),16以上才支持。第一次创建项目会去下载create-vue比较慢,等一会就好了。npminitvue@latest然后关掉命令行,重新......
  • m基于码率兼容打孔LDPC码BP译码算法的matlab误码率仿真
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要码率兼容打孔LDPC码BP译码算法是一种改进的LDPC译码算法,能够在不同码率下实现更好的译码性能。该算法通过在LDPC码中引入打孔操作,使得码率可以灵活地调整,同时利用BP(BeliefPropagation)译码算法进行迭代译码,提高了......
  • m基于码率兼容打孔LDPC码BP译码算法的matlab误码率仿真
    1.算法仿真效果matlab2022a仿真结果如下:   2.算法涉及理论知识概要       码率兼容打孔LDPC码BP译码算法是一种改进的LDPC译码算法,能够在不同码率下实现更好的译码性能。该算法通过在LDPC码中引入打孔操作,使得码率可以灵活地调整,同时利用BP(BeliefPropagation)译......
  • 直接插入排序算法及其改进
    插入排序,分为直接插排,和二分插排直接插入排序大体思路:选取<数组>,将其余数依次按顺序往里放。(C语言实现)#include<stdio.h>voidinsertSort(int*a);intmain(){inta[6]={5,2,4,6,1,3};//这里也可以改成自定义数组insertSort(a);intk;for(k=0;......
  • SQL语句的入门学习运用
    查看版本mysql-Vselectversion();查看帮助信息mysql--help 或者mysql-?登录mysql-hIP地址-p端口-u用户名-p密码说明:-hIP地址:连接到指定ip的数据库-p端口:需要连接数据库对应的端口(一般是3306)-u用户名:需要登录的用户名的密码-p密码:用户名登录数据库的密码列如:mysql-hlocaho......
  • 基于wsl的ubuntu vscode调试环境搭建--Apple的学习笔记
    一,前言正好在网上搜索文章的时候看到了wsl,我想起来它也是一个虚拟机环境,所以我要用用,没想要一用,感觉比vmware还要方便。二,环境搭建A,在wsl中安装ubuntu1.     首先打开powershell 输入命令wsl--list–online,来查看支持安装的ubuntu版本。 注意:若提示连接超时,则是自动ip......