作品简介

本书全面、系统地总结了在准备程序员面试过程中必备的数据结构与算法。本书首先详细讨论整数、数组、链表、字符串、哈希表、栈、队列、二叉树、堆和前缀树等常用的数据结构,然后深入讨论二分查找、排序、回溯法、动态规划和图搜索等算法。除了介绍相应的基础知识,每章还通过大量的高频面试题系统地总结了各种数据结构与算法的应用场景及解题技巧。

本书适合所有正在准备面试的程序员阅读。无论是计算机相关专业的应届毕业生还是初入职场的程序员,本书总结的数据结构和算法的基础知识及解题经验都不仅可以帮助他们提高准备面试的效率,还可以增加他们通过面试的成功率。

何海涛,有近20年在IT跨国巨头公司编程经验,参与开发过Office、Visual Studio、Azure等产品;以面试者身份进入Autodesk、思科、微软中国(上海)、微软总部(美国)等知名企业后,担任面试官面试千余次,积累大量真实试题和现场经验。著有编程面试类图书《剑指Offer——名企面试官精讲典型编程题》(系列)、《Coding Interviews:Questions,Analysis and Solutions》(《剑指Offer》英文版,也是唯一全球多语种发行的编程图书),通过自己的著作与线上答疑,帮助数百万读者拿到心仪的Offer;现全家定居美国。

作品目录

  • 内容简介
  • 前言
  • 第1章 整数
  • 1.1 整数的基础知识
  • 1.2 二进制
  • 1.3 本章小结
  • 第2章 数组
  • 2.1 数组的基础知识
  • 2.2 双指针
  • 2.3 累加数组数字求子数组之和
  • 2.4 本章小结
  • 第3章 字符串
  • 3.1 字符串的基础知识
  • 3.2 双指针
  • 3.3 回文字符串
  • 3.4 本章小结
  • 第4章 链表
  • 4.1 链表的基础知识
  • 4.2 哨兵节点
  • 4.3 双指针
  • 4.4 反转链表
  • 4.5 双向链表和循环链表
  • 4.6 本章小结
  • 第5章 哈希表
  • 5.1 哈希表的基础知识
  • 5.2 哈希表的设计
  • 5.3 哈希表的应用
  • 5.4 本章小结
  • 第6章 栈
  • 6.1 栈的基础知识
  • 6.2 栈的应用
  • 6.3 本章小结
  • 第7章 队列
  • 7.1 队列的基础知识
  • 7.2 队列的应用
  • 7.3 二叉树的广度优先搜索
  • 7.4 本章小结
  • 第8章 树
  • 8.1 树的基础知识
  • 8.2 二叉树的深度优先搜索
  • 8.3 二叉搜索树
  • 8.4 TreeSet和TreeMap的应用
  • 8.5 本章小结
  • 第9章 堆
  • 9.1 堆的基础知识
  • 9.2 堆的应用
  • 9.3 本章小结
  • 第10章 前缀树
  • 10.1 前缀树的基础知识
  • 10.2 前缀树的应用
  • 10.3 本章小结
  • 第11章 二分查找
  • 11.1 二分查找的基础知识
  • 11.2 在排序数组中二分查找
  • 11.3 在数值范围内二分查找
  • 11.4 本章小结
  • 第12章 排序
  • 12.1 排序的基础知识
  • 12.2 计数排序
  • 12.3 快速排序
  • 12.4 归并排序
  • 12.5 本章小结
  • 第13章 回溯法
  • 13.1 回溯法的基础知识
  • 13.2 集合的组合、排列
  • 13.3 使用回溯法解决其他类型的问题
  • 13.4 本章小结
  • 第14章 动态规划
  • 14.1 动态规划的基础知识
  • 14.2 单序列问题
  • 14.3 双序列问题
  • 14.4 矩阵路径问题
  • 14.5 背包问题
  • 14.6 本章小结
  • 第15章 图
  • 15.1 图的基础知识
  • 15.2 图的搜索
  • 15.3 拓扑排序
  • 15.4 并查集
  • 15.5 本章小结
展开全部