剑指 Offer(专项突破版)
文章平均质量分 97
该书详细讨论了整数、数组、链表、字符串、哈希表、栈、队列、二叉树、堆和前缀树等常用的数据结构,然后又深入了讨论二分查找、排序、回溯法、动态规划和图搜索等算法。
TomLazy
及时当勉励 岁月不待人
展开
-
【LeetCode】剑指 Offer Ⅱ 第8章:树(12道题) -- Java Version
本章主要介绍了树这种结构,尤其着重介绍了二叉树、二叉搜索树,以及Java中具有平衡二叉搜索树性质的两种数据结构:TreeSet 和 TreeMap。对应二叉树的宽搜,我们通常使用队列来辅助解决,而对于二叉树的深搜,则推荐使用栈来辅助解决。此外,二叉搜索树是一种特殊的二叉树,如果按照中序遍历的顺序遍历一棵二叉搜索树,那么就能够实现从小到大的顺序依次遍历该树的每个节点。原创 2023-11-02 15:30:48 · 450 阅读 · 0 评论 -
【LeetCode】剑指 Offer Ⅱ 第7章:队列(6道题) -- Java Version
本章主要介绍了队列这种数据结构。如果一个数据集合的添加、删除操作满足“先入先出”的特点,即最先添加的数据最先被删除,那么可以用队列来实现这个数据集合。队列经常被用来实现二叉树的广度优先搜索(推荐使用双队列的方案)、以及处理滑动窗口问题。原创 2023-10-14 13:44:48 · 378 阅读 · 0 评论 -
【LeetCode】剑指 Offer Ⅱ 第6章:栈(5道题) -- Java Version
本章主要介绍了栈这种常见的数据结构。栈的插入、删除操作都发生在栈的顶部。在栈中插入、删除数据的顺序为“后入先出”,即最后添加的数据最先被删除。Java的类型Stack实现了栈的功能。原创 2023-10-09 16:53:35 · 283 阅读 · 0 评论 -
【LeetCode】剑指 Offer Ⅱ 第5章:哈希表(6道题) -- Java Version
本章主要练习了基本的哈希表设计和应用:哈希表的设计(剑指 Offer II 030. 插入、删除和随机访问都是O(1) 的容器、剑指 Offer II 031. LRU 缓存)【HashMap 与 List的结合】;哈希表的应用(剑指 Offer II 032. 有效的变位词、剑指 Offer II 033. 变位词组、剑指 Offer II 034. 外星语言是否排序、剑指 Offer II 035. 最小时间差)。原创 2023-08-28 23:04:39 · 379 阅读 · 0 评论 -
【LeetCode】剑指 Offer Ⅱ 第4章:链表(9道题) -- Java Version
本章题目包含知识点有:哨兵节点、双指针、反转链表、双向链表、循环链表。【双指针】021. 删除链表的倒数第 N 个结点 \ 022. 链表中环的入口节点 \ 023. 两个链表的第1个重合节点;【反转链表】024. 反转链表 \ 025. 链表中的数字相加 \ 026. 重排链表 \ 027. 回文链表;【双向和循环链表】028. 扁平化多级双向链表 \ 029. 排序的循环链表。原创 2023-08-20 23:32:25 · 1114 阅读 · 0 评论 -
【LeetCode】剑指 Offer Ⅱ 第3章:字符串(7道题) -- Java Version
本章的题目主要分为两种类型:变位词 和 回文;对应的解题思路主要是双指针,对于变位词,我们可以使用一个哈希表来统计每个字符出现的次数,从而判断两个字符串是不是一组变位词。对于回文,我们可以选择从两端向中间移动双指针,也可以选择从中间向两端移动。014. 字符串中的变位词 \ 015. 找到字符串中所有字母异位词 \ 016. 不含重复字符的最长子字符串 \ 017. 最小覆盖子串【变位词】;018. 有效的回文 \ 019. 最多删除一个字符得到回文 \ 020. 回文子字符串的个数【回文字符串】。原创 2023-08-05 20:01:31 · 488 阅读 · 0 评论 -
【LeetCode】剑指 Offer Ⅱ 第2章:数组(8道题) -- Java Version
第2章主要涉及算法有双指针(滑动窗口)、前缀和(一维/二维)、哈希表(优化查询);006. 排序数组中两个数字之和 \ 007. 数组中和为 0 的三个数 \ 008. 和大于等于 target 的最短子数组 \ 009. 乘积小于 K 的子数组【双指针】;010. 和为 k 的子数组 \ 011. 0 和 1 个数相同的子数组 \ 012. 左右两边子数组的和相等 \ 013. 二维子矩阵的和【前缀和】.原创 2023-08-02 16:16:20 · 503 阅读 · 0 评论 -
【LeetCode】剑指 Offer Ⅱ 第1章:整数(5道题) -- Java Version
001. 整数除法【快速除】、002. 二进制加法【模拟:StringBuilder】、003. 前 n 个数字二进制中 1 的个数【动规 + 位运算】、004. 只出现一次的数字【位运算:按位取模】、005. 单词长度的最大乘积【位运算 + 模拟】。原创 2023-07-29 22:27:13 · 951 阅读 · 0 评论