数据结构 leetcode 刷题顺序

0. 思想

实践的顺序,

应该是先将基础的 数据结构题目类型给实现。

然后再开始尝试 实现对应类型的算法题目,如回溯算法, 贪心算法, 动态规划, 图论;

  1. 基础的数据结构, 推荐卡尔的:
    代码随想录:https://programmercarl.com/;

  2. 算法部分,卡尔的内容结合: https://labuladong.online/algo/home/; 两者在原理解释上结合来看;

  3. 计算机基础知识,
    操作系统、计算机网络、数据结构与算法、数据库、计算机组成原理, 基本
    踏实的学习应该是在大学本科, 后续可以自学, 参考 阿秀的笔记
    https://interviewguide.cn/notes/01-guide/web-guide-reading.html;

此外, 在面试过程中,
写代码时, 会出现ACM 的编程风格,即需要自己处理输入,输出,这里推荐参考:

  1. 牛客网的示例练习

  2. 卡尔网的 https://kamacoder.com/;

  3. 自己也写了一些ACM 输入输出的介绍链接

1. 基本数据结构

  1. 算法性能分析
    主要 分 时间复杂度 和空间复杂度 两大部分;

自己查询;

1.1 数组

  1. 二分查找 lc 704;
  2. 移除元素 lc27;
  3. 有序数组的平方 lc977;
  4. 长度最小的子数组 lc 209;
  5. 螺旋矩阵II lc59;

1.2 链表

  1. 移除链表元素 lc203;
  2. 设计链表 lc707;
  3. 反转链表 lc206;
  4. 两两交换链表中的节点 lc24;
  5. 删除链表的倒数第N 个节点 lc19;
  6. 链表相交; 面试题 02.07;
  7. 环形链表II, lc142

1.3 哈希表

  1. 有效的字母异位词 lc 242;
  2. 两个数组的交集 lc349;
  3. 快乐数字 lc202;
  4. 两数之和 lc1;
  5. 四数相加 lc454;
  6. 赎金信 lc383;
  7. 三数之和 lc15;
  8. 四数之和 lc18

1.4 字符串

  1. 反转字符串 lc344;
  2. 反转字符串II, lc541;
  3. 替换空格, 剑指offer 05;
  4. 翻转字符中的单词, lc151;
  5. 左旋转字符串 剑指offer58;
  6. 实现strStr 函数, lc28;
  7. 重复的 子字符串 lc459;

1.5 栈与 队列

  1. 栈实现队列 lc232;
  2. 队列实现栈, lc225;
  3. 有效的括号 lc20;
  4. 删除字符串中所有相邻重复项 lc1047;
  5. 逆波兰表达式求值, lc150;
  6. 滑动窗口最大值 lc239;
  7. 前K个 高频元素 lc347;

1.6 二叉树 专题

1.6.1 深度优先遍历的递归实现方式;

144.二叉树的前序遍历
94.二叉树的中序遍历
145.二叉树的后序遍历

1.6.2 深度优先遍历的迭代实现方式;

144.二叉树的前序遍历
94.二叉树的中序遍历
145.二叉树的后序遍历

1.6.3 深度优先遍历的迭代方式的统一实现;

144.二叉树的前序遍历
94.二叉树的中序遍历
145.二叉树的后序遍历

1.6.4 广度优先遍历(层序遍历);

102.二叉树的层序遍历
107.二叉树的层次遍历II
199.二叉树的右视图
637.二叉树的层平均值
429.N叉树的层序遍历
515.在每个树行中找最大值
116.填充每个节点的下一个右侧节点指针
117.填充每个节点的下一个右侧节点指针II
104.二叉树的最大深度
111.二叉树的最小深度

1.6.5 反转二叉树;

lc226;

2. 基础算法

2.1 回朔算法

2.2 贪心算法

2.3 动态规划

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值