LeetCode刷题指南——数据结构

53 篇文章 9 订阅 ¥9.90 ¥99.00
本文详细介绍了LeetCode中涉及的数据结构,包括数组、队列&栈、链表、哈希表、二叉树及二叉搜索树等,并讲解了相关操作和算法,如二分法、广度优先搜索、深度优先搜索、链表遍历、哈希表设计等。还提到了N叉树和前缀树的应用。提供了作者在LeetCode和GitHub上的资源链接。
摘要由CSDN通过智能技术生成

LeetCode数据结构的基础知识:数据结构

知识点记录:

数组

  • 双指针法
    常见的有:
    单数组的双指针法
    双数组的双指针法

  • 二分法
    鉴于二分法查找在时间复杂度的优势,对于一些数组的查找问题,我们可以通过先将数组排序,之后采用二分进行查找的方式。
    这里有三个二分法的模板可以参考:二分法模板
    对于二分法,最后可能是不剩元素,剩余一个,剩余两个,具体根据情况选择;

队列&栈

  • 队列的基本操作
  • 广度优先搜索(BFS)
    BFS主要特点是逐层搜索,直到找到目标,立即停止寻找,则最先找到的目标所在层次即为最短的距离或者最近的;
  • Stack
    对于栈的先进先出这种特性,可以用来处理一些具有先后顺序的一组数据;
  • 深度优先搜索(DFS)
    遍历所有的可能路径;

链表

  • 单链表基本操作
  • 使用单指针对链表进行遍历
  • 使用双指针对链表进行遍历(快慢指针)
  • 双链表基本操作

哈希表

  • 设计哈希表
  • 设计哈希集合
  • 使用哈希对象时候,如何选择key值

二叉树

  • 遍历:
    前序遍历,中序遍历,后序遍历,层次遍历
  • 使用递归和堆栈解决树的一些问题
  • 二叉树的序列化和反序列化

二叉搜索树(BinarySearchTree)

  • BTS 定义
  • 验证BST:
    中序遍历(左中右),遍历得到的值从小到大排列,可以使用此点验证二叉搜索树;
  • BST基本操作:
    搜索,插入,删除
  • 高度平衡二叉树验证:
    BST+一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1
  • 有序数组转换成高度平衡二叉搜索树
  • 常见高度平衡二叉树:
    红黑树;
    AVL树;
    伸展树;
    树堆

N叉树

  • N叉树的遍历:前序,后序,层次

前缀树

  • 实现前缀树的插入和搜索
  • 利用前缀树的特性进行字符搜索

PS

  • 我的LeetCode主页:https://leetcode-cn.com/soledadvac/
  • GitHub部分代码:https://github.com/SoledadVac/CommonLibForJava/tree/master/src/test/java/leetcode
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水田如雅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值