description: 202108

  • Origin Content
    • 版权信息
    • 前言
    • 推荐序二
    • 推荐序一
    • 第1章 面试的流程
      • 1.1 面试官谈面试
      • 1.2 面试的三种形式
        • 1.2.1 电话面试
        • 1.2.2 共享桌面远程面试
        • 1.2.3 现场面试
      • 1.3 面试的三个环节
        • 1.3.1 行为面试环节
        • 1.3.2 技术面试环节
        • 1.3.3 应聘者提问环节
      • 1.4 本章小结
    • 第2章 面试需要的基础知识
      • 2.1 面试官谈基础知识
      • 2.2 编程语言
        • 2.2.1 C++
        • 面试题1:赋值运算符函数
        • 2.2.2 c#
        • 面试题2:实现Singleton模式
      • 2.3 数据结构
        • 2.3.1 数组
        • 面试题3:二维数组中的查找
        • 2.3.2 字符串
        • 面试题4:替换空格
        • 2.3.3 链表
        • 面试题5:从尾到头打印链表
        • 2.3.4 树
        • 面试题6:重建二叉树
        • 2.3.5 栈和队列
        • 面试题7:用两个栈实现队列
      • 2.4 算法和数据操作
        • 2.4.1 查找和排序
        • 面试题8:旋转数组的最小数字
        • 2.4.2 递归和循环
        • 面试题9:斐波那契数列
        • 2.4.3 位运算
        • 面试题10:二进制中1的个数
      • 2.5 本章小结
    • 第3章 高质量的代码
      • 3.1 面试官谈代码质量
      • 3.2 代码的规范性
      • 3.3 代码的完整性
        • 面试题11:数值的整数次方
        • 面试题12:打印1到最大的n位数
        • 面试题13:在O(1)时间删除链表结点
        • 面试题14:调整数组顺序使奇数位于偶数前面
      • 3.4 代码的鲁棒性
        • 面试题15:链表中倒数第k个结点
        • 面试题16:反转链表
        • 面试题17:合并两个排序的链表
        • 面试题18:树的子结构
      • 3.5本章小结
    • 第4章 解决面试题的思路
      • 4.1 面试官谈面试思路
      • 4.2 画图让抽象问题形象化
        • 面试题19:二叉树的镜像
        • 面试题20:顺时针打印矩阵
      • 4.3举例让抽象问题具体化
        • 面试题21:包含min函数的栈
        • 面试题22:栈的压入、弹出序列
        • 面试题23:从上往下打印二叉树
        • 面试题24:二叉搜索树的后序遍历序列
      • 4.4 分解让复杂问题简单化
        • 面试题26:复杂链表的复制
        • 面试题27:二叉搜索树与双向链表
        • 面试题28:字符串的排列
      • 4.5 本章小结
    • 第5章 优化时间和空间效率
      • 5.1 面试官谈效率
      • 5.2 时间效率
        • 面试题29:数组中出现次数超过一半的数字
        • 面试题30:最小的k个数
        • 面试题31:连续子数组的最大和
        • 面试题32:从1到n整数中1出现的次数
        • 面试题33:把数组排成最小的数
      • 5.3 时间效率与空间效率的平衡
        • 面试题34:丑数
        • 面试题35:第一个只出现一次的字符
        • 面试题36:数组中的逆序对
        • 面试题37:两个链表的第一个公共结点
      • 5.4 本章小结
    • 第6章 面试中的各项能力
      • 6.1 面试官谈能力
      • 6.2 沟通能力和学习能力
      • 6.3 知识迁移能力
        • 面试题38:数字在排序数组中出现的次数
        • 面试题39:二叉树的深度
        • 面试题41:和为s的两个数字VS和为s的连续正数序列
        • 面试题42:翻转单词顺序 VS左旋转字符串
      • 6.4 抽象建模能力
        • 面试题43:n个骰子的点数
        • 面试题45:圆圈中最后剩下的数字
      • 6.5 发散思维能力
        • 面试题46:求1+2+…+n
        • 面试题47:不用加减乘除做加法
        • 面试题48:不能被继承的类
      • 6.6 本章小结
    • 第7章 两个面试案例
      • 7.1 案例一:(面试题49)把字符串转换成整数
      • 7.2 案例二:(面试题50)树中两个结点的最低公共祖先
  • 专项突破版 Content
    • 版权信息
    • 内容简介
    • 前言
    • 第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 本章小结
    • 作者简介