![]()
内容推荐 本书旨在帮助读者筑牢数据结构和算法的基础,提升职场竞争力。本书代码采用Java语言编写,分为上、下两篇,共15章。其中,第1~9章为上篇,讲解数据结构和算法基础,为读者全面梳理基本知识,内容涵盖线性结构、树结构、图结构、排序与查找、穷举法、递归算法、贪心算法、动态规划、回溯法;第10~15章为下篇,收集了50多道经典且有趣的大厂面试真题,针对每道题都给出了详细的分析和解答,帮助读者全面提升解决实际问题的能力,同时为读者准备笔试、面试提供帮助。 本书坚持“夯实基础、注重实践、举一反三”的理念,内容丰富翔实、妙趣横生,讲解深入浅出、清晰到位。希望能够陪伴读者在轻松愉快的氛围中学习。 本书既可作为计算机相关专业的学生以及算法爱好者学习用书,也可作为应届毕业生及社招人员笔试、面试的求职参考书,还可作为培训机构的教材。 目录 上篇 数据结构与算法基础 第1章 线性结构 1.1 数组 1.1.1 数组的基本概念 1.1.2 数组的定义 1.1.3 数组的基本作 1.1.4 数组的性能分析 1.1.5 案例分析 1.2 链表 1.2.1 链表的基本概念 1.2.2 链表的定义 1.2.3 链表的基本作 1.2.4 链表的性能分析 1.2.5 不同形态的链表结构 1.2.6 案例分析 1.3 栈 1.3.1 栈的基本概念 1.3.2 栈的定义 1.3.3 栈的基本作 1.3.4 案例分析 1.4 队列 1.4.1 队列的基本概念 1.4.2 队列的定义 1.4.3 队列的基本作 1.4.4 双端队列 1.4.5 实战分析 第2章 树结构 2.1 树的基本概念 2.2 二树 2.3 二树的遍历 2.4 建二树 2.5 二排序树与AVL树 2.6 案例分析 第3章 图结构 3.1 图的基本概念 3.2 图的存储形式 3.3 邻接表的实现 3.4 图的遍历 3.5 案例分析 第4章 排序与查找 4.1 直接入排序 4.2 冒泡排序 4.3 简单选择排序 4.4 快速排序 4.5 希尔排序 4.6 堆排序 4.7 各种排序算法的比较 4.8 折半查找算法 4.9 案例分析 第5章 穷举法 5.1 穷举法的基本思想 5.2 案例分析 第6章 递归算法 6.1 递归算法的基本思想 6.2 案例分析 第7章 贪算法 7.1 贪算法的基本思想 7.2 案例分析 第8章 动态规划 8.1 动态规划算法的基本思想 8.2 案例分析 第9章 回溯法 9.1 回溯法的基本思想 9.2 案例分析 下篇 大厂面试题详解 第10章 数组和字符串类面试题 10.1 数组元素的奇偶重排 10.2 不改变顺序的数组元素奇偶重排 10.3 有序数组的两数之和 10.4 三数之和 10.5 两个有序数组的交集 10.6 最长公共前缀问题 10.7 最长公共子串问题 10.8 长度最小的连续子数组 10.9 最长无重复子串 10.10 删除字符数组中定字符 10.11 最短连续子数组问题 10.12 字符数组的内容重排 10.13 字符串数组类面试题解题技巧 第11章 线性结构类面试题 11.1 约瑟夫环 11.2 单链表的逆置 11.3 判断链表中是否存在循环结构 11.4 判断两个链表是否相交 11.5 判断回文链表 11.6 最小栈问题 11.7 每日温度 11.8 LRU缓存的设计 11.9 线性结构类面试题解题技巧 第12章 二树类面试题 12.1 完全二树的判定 12.2 二树节点的最大距离 12.3 打印二树中的重复子树 12.4 还原二树 12.5 二树类面试题解题技巧 第13章 递归和动态规划系列面试题 13.1 分解质因数 13.2 拨号盘字母组合 13.3 组合的总和 13.4 在大矩阵中找k 13.5 跳跃游戏 13.6 机器人的最小路径长度 13.7 聪明的侦探 第14章 穷举法和回溯法系列面试题 14.1 数组元素之差的最小值 14.2 数的分组问题 14.3 最佳的碰面地点 14.4 多点共线问题 14.5 复原IP地址 14.6 矩阵中的相邻数 14.7 被围的区域 第15章 其他类型算法面试题 15.1 相差多少天 15.2 万年历 15.31 的数量 15.4 找出人群中唯*的“单身者” 15.5 找出人群中3个“单身者”中的任意个 15.6 空瓶换汽水问题 15.7 渔夫捕鱼问题 15.8 密数 15.9 筛选出100以内的素数 15.10 寻找丑数 15.11 组成最小的数 15.12 数字翻译器 15.13 计算π值 |