程序员面试算法宝典

程序员面试算法宝典
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2018-09
版次: 1
ISBN: 9787111607328
定价: 69.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 309页
  • 这是一本讲解程序员面试算法的书。在写法上,除了讲解如何解答算法问题外,还引入了例子辅以说明,让读者能更容易理解。 

    本书将程序员面试笔试过程中各类算法类真题一网打尽。在题目的广度上,通过各种渠道,搜集了近3年来多家IT企业面试算法高频题目;在题目的深度上,本书由浅入深、庖丁解牛式地分析每一个题目,并提炼归纳,同时,引入例子与源代码、时间复杂度与空间复杂度的分析。本书根据真题所属知识点分门别类,结构合理,条理清晰,对于读者进行学习与查阅意义重大。 

    本书是针对计算机相关专业毕业生面试笔试的求职用书,也可以作为本科生、研究生学习数据结构与算法的辅导书,同时也适合期望在计算机行业大显身手的计算机爱好者阅读。 前言 

    面试笔试经验技巧篇 

    经验技巧1 如何巧妙地回答面试官的问题?2 

    经验技巧2 如何回答技术性的问题?3 

    经验技巧3 如何回答非技术性问题?4 

    经验技巧4 如何回答快速估算类问题?5 

    经验技巧5 如何回答算法设计问题?6 

    经验技巧6 如何回答系统设计题?9 

    经验技巧7 如何解决求职中的时间冲突问题?11 

    经验技巧8 如果面试问题曾经遇见过,是否要告知面试官?12 

    经验技巧9 在被企业拒绝后是否可以再申请?13 

    经验技巧10 如何应对自己不会回答的问题?13 

    经验技巧11 如何应对面试官的“激将法”语言?14 

    经验技巧12 如何处理与面试官持不同观点这个问题?15 

    经验技巧13 什么是职场暗语?15 

    面试笔试真题解析篇 

    第1章 链表21 

    1.1 如何实现链表的逆序21 

    1.2 如何从无序链表中移除重复项27 

    1.3 如何计算两个单链表所代表的数之和30 

    1.4 如何对链表进行重新排序34 

    1.5 如何找出单链表中的倒数第k个元素37 

    1.6 如何检测一个较大的单链表是否有环41 

    1.7 如何把链表相邻元素翻转44 

    1.8 如何把链表以K个结点为一组进行翻转46 

    1.9 如何合并两个有序链表49 

    1.10 如何在只给定单链表中某个结点的指针的情况下删除该结点52 

    1.11 如何判断两个单链表(无环)是否相交54 

    1.12 如何翻转变异的链表58 

    1.13 如何展开链接列表59 

    第2章  栈、队列与哈希63 

    2.1 如何实现栈63 

    2.2 如何实现队列69 

    2.3 如何翻转栈的所有元素75 

    2.4 如何根据入栈序列判断可能的出栈序列79 

    2.5 如何用O(1)的时间复杂度求栈中最小元素81 

    2.6 如何用两个栈模拟队列操作83 

    2.7 如何设计一个排序系统84 

    2.8 如何实现LRU缓存方案86 

    2.9 如何从给定的车票中找出旅程90 

    2.10 如何从数组中找出满足a+b=c+d的两个数对92 

    第3章  二叉树94 

    3.1 二叉树基础知识94 

    3.2 如何把一个有序整数数组放到二叉树中96 

    3.3 如何从顶部开始逐层打印二叉树结点数据98 

    3.4 如何求一棵二叉树的最大子树和100 

    3.5 如何判断两棵二叉树是否相等102 

    3.6 如何把二叉树转换为双向链表104 

    3.7 如何判断一个数组是否为二元查找树后序遍历的序列106 

    3.8 如何找出排序二叉树上任意两个结点的最近共同父结点108 

    3.9 如何复制二叉树113 

    3.10 如何在二叉树中找出一条路径满足路径上所有结点的和等于给定的整数114 

    3.11 如何对二叉树进行镜像反转116 

    3.12 如何在二叉排序树中找出第一个大于中间值的结点117 

    3.13 如何在二叉树中找出路径和的最大值119 

    3.14 如何实现反向DNS查找缓存121 

    第4章 数组125 

    4.1 如何找出数组中唯一的重复元素125 

    4.2 如何查找数组中元素的最大值和最小值131 

    4.3 如何找出旋转数组的最小元素135 

    4.4 如何找出数组中丢失的数138 

    4.5 如何找出数组中出现奇数次的数140 

    4.6 如何找出数组中第k小的数142 

    4.7 如何求数组中两个元素的最小距离145 

    4.8 如何求解最小三元组距离148 

    4.9 如何求数组中绝对值最小的数152 

    4.10 如何求数组连续最大和155 

    4.11 如何找出数组中出现一次的数158 

    4.12 如何在不排序的情况下求数组中的中位数160 

    4.13 如何求集合的所有非空子集162 

    4.14 如何对数组进行循环移位166 

    4.15 如何在有规律的二维数组中进行高效的数据查找168 

    4.16 如何寻找最多的覆盖点170 

    4.17 如何判断请求能否在给定的存储条件下完成171 

    4.18 如何按要求构造新的数组174 

    4.19 如何获取最好的矩阵链相乘方法175 

    4.20 如何求解迷宫问题177 

    4.21 如何从三个有序数组中找出它们的公共元素180 

    4.22 如何对有大量重复数字的数组排序181 

    第5章 字符串187 

    5.1 如何求一个字符串的所有排列187 

    5.2 如何求两个字符串的最长公共子串192 

    5.3 如何对字符串原地压缩195 

    5.4 如何对字符串进行反转197 

    5.5 如何判断两个字符串是否互为换位字符串199 

    5.6 如何判断两个字符串的包含关系201 

    5.7 如何对由大小写字母组成的字符串排序204 

    5.8 如何消除字符串的内嵌括号206 

    5.9 如何判断字符串是否为整数207 

    5.10 如何实现字符串的匹配210 

    5.11 如何求字符串里的最长回文子串214 

    5.12 如何按照给定的字母序列对字符串排序220 

    5.13 如何判断一个字符串是否包含重复字符223 

    5.14 如何删除给定字符串中的指定字符225 

    5.15 如何找到由其他单词组成的最长单词227 

    5.16 如何统计字符串中连续的重复字符个数230 

    5.17 如何求最长递增子序列的长度231 

    5.18 如何对字符串进行旋转232 

    5.19 如何求解字符串的最长重复子串233 

    5.20 如何求解字符串中字典序最大的子序列238 

    5.21 如何判断一个字符串是否由另外一个字符串旋转得到240 

    5.22 如何去掉字符串的首尾空格并合并多个连续空格为一个241 

    5.23 如何求字符串的编辑距离243 

    5.24 如何求相对路径245 

    5.25 如何查找到达目标词的最短链长度247 

    第6章 基本数字运算250 

    6.1 如何判断一个自然数是否为某个数的平方250 

    6.2 如何判断一个数是否为2的n次方252 

    6.3 如何不使用除法操作符实现两个正整数的除法254 

    6.4 如何
  • 内容简介:
    这是一本讲解程序员面试算法的书。在写法上,除了讲解如何解答算法问题外,还引入了例子辅以说明,让读者能更容易理解。 

    本书将程序员面试笔试过程中各类算法类真题一网打尽。在题目的广度上,通过各种渠道,搜集了近3年来多家IT企业面试算法高频题目;在题目的深度上,本书由浅入深、庖丁解牛式地分析每一个题目,并提炼归纳,同时,引入例子与源代码、时间复杂度与空间复杂度的分析。本书根据真题所属知识点分门别类,结构合理,条理清晰,对于读者进行学习与查阅意义重大。 

    本书是针对计算机相关专业毕业生面试笔试的求职用书,也可以作为本科生、研究生学习数据结构与算法的辅导书,同时也适合期望在计算机行业大显身手的计算机爱好者阅读。
  • 目录:
    前言 

    面试笔试经验技巧篇 

    经验技巧1 如何巧妙地回答面试官的问题?2 

    经验技巧2 如何回答技术性的问题?3 

    经验技巧3 如何回答非技术性问题?4 

    经验技巧4 如何回答快速估算类问题?5 

    经验技巧5 如何回答算法设计问题?6 

    经验技巧6 如何回答系统设计题?9 

    经验技巧7 如何解决求职中的时间冲突问题?11 

    经验技巧8 如果面试问题曾经遇见过,是否要告知面试官?12 

    经验技巧9 在被企业拒绝后是否可以再申请?13 

    经验技巧10 如何应对自己不会回答的问题?13 

    经验技巧11 如何应对面试官的“激将法”语言?14 

    经验技巧12 如何处理与面试官持不同观点这个问题?15 

    经验技巧13 什么是职场暗语?15 

    面试笔试真题解析篇 

    第1章 链表21 

    1.1 如何实现链表的逆序21 

    1.2 如何从无序链表中移除重复项27 

    1.3 如何计算两个单链表所代表的数之和30 

    1.4 如何对链表进行重新排序34 

    1.5 如何找出单链表中的倒数第k个元素37 

    1.6 如何检测一个较大的单链表是否有环41 

    1.7 如何把链表相邻元素翻转44 

    1.8 如何把链表以K个结点为一组进行翻转46 

    1.9 如何合并两个有序链表49 

    1.10 如何在只给定单链表中某个结点的指针的情况下删除该结点52 

    1.11 如何判断两个单链表(无环)是否相交54 

    1.12 如何翻转变异的链表58 

    1.13 如何展开链接列表59 

    第2章  栈、队列与哈希63 

    2.1 如何实现栈63 

    2.2 如何实现队列69 

    2.3 如何翻转栈的所有元素75 

    2.4 如何根据入栈序列判断可能的出栈序列79 

    2.5 如何用O(1)的时间复杂度求栈中最小元素81 

    2.6 如何用两个栈模拟队列操作83 

    2.7 如何设计一个排序系统84 

    2.8 如何实现LRU缓存方案86 

    2.9 如何从给定的车票中找出旅程90 

    2.10 如何从数组中找出满足a+b=c+d的两个数对92 

    第3章  二叉树94 

    3.1 二叉树基础知识94 

    3.2 如何把一个有序整数数组放到二叉树中96 

    3.3 如何从顶部开始逐层打印二叉树结点数据98 

    3.4 如何求一棵二叉树的最大子树和100 

    3.5 如何判断两棵二叉树是否相等102 

    3.6 如何把二叉树转换为双向链表104 

    3.7 如何判断一个数组是否为二元查找树后序遍历的序列106 

    3.8 如何找出排序二叉树上任意两个结点的最近共同父结点108 

    3.9 如何复制二叉树113 

    3.10 如何在二叉树中找出一条路径满足路径上所有结点的和等于给定的整数114 

    3.11 如何对二叉树进行镜像反转116 

    3.12 如何在二叉排序树中找出第一个大于中间值的结点117 

    3.13 如何在二叉树中找出路径和的最大值119 

    3.14 如何实现反向DNS查找缓存121 

    第4章 数组125 

    4.1 如何找出数组中唯一的重复元素125 

    4.2 如何查找数组中元素的最大值和最小值131 

    4.3 如何找出旋转数组的最小元素135 

    4.4 如何找出数组中丢失的数138 

    4.5 如何找出数组中出现奇数次的数140 

    4.6 如何找出数组中第k小的数142 

    4.7 如何求数组中两个元素的最小距离145 

    4.8 如何求解最小三元组距离148 

    4.9 如何求数组中绝对值最小的数152 

    4.10 如何求数组连续最大和155 

    4.11 如何找出数组中出现一次的数158 

    4.12 如何在不排序的情况下求数组中的中位数160 

    4.13 如何求集合的所有非空子集162 

    4.14 如何对数组进行循环移位166 

    4.15 如何在有规律的二维数组中进行高效的数据查找168 

    4.16 如何寻找最多的覆盖点170 

    4.17 如何判断请求能否在给定的存储条件下完成171 

    4.18 如何按要求构造新的数组174 

    4.19 如何获取最好的矩阵链相乘方法175 

    4.20 如何求解迷宫问题177 

    4.21 如何从三个有序数组中找出它们的公共元素180 

    4.22 如何对有大量重复数字的数组排序181 

    第5章 字符串187 

    5.1 如何求一个字符串的所有排列187 

    5.2 如何求两个字符串的最长公共子串192 

    5.3 如何对字符串原地压缩195 

    5.4 如何对字符串进行反转197 

    5.5 如何判断两个字符串是否互为换位字符串199 

    5.6 如何判断两个字符串的包含关系201 

    5.7 如何对由大小写字母组成的字符串排序204 

    5.8 如何消除字符串的内嵌括号206 

    5.9 如何判断字符串是否为整数207 

    5.10 如何实现字符串的匹配210 

    5.11 如何求字符串里的最长回文子串214 

    5.12 如何按照给定的字母序列对字符串排序220 

    5.13 如何判断一个字符串是否包含重复字符223 

    5.14 如何删除给定字符串中的指定字符225 

    5.15 如何找到由其他单词组成的最长单词227 

    5.16 如何统计字符串中连续的重复字符个数230 

    5.17 如何求最长递增子序列的长度231 

    5.18 如何对字符串进行旋转232 

    5.19 如何求解字符串的最长重复子串233 

    5.20 如何求解字符串中字典序最大的子序列238 

    5.21 如何判断一个字符串是否由另外一个字符串旋转得到240 

    5.22 如何去掉字符串的首尾空格并合并多个连续空格为一个241 

    5.23 如何求字符串的编辑距离243 

    5.24 如何求相对路径245 

    5.25 如何查找到达目标词的最短链长度247 

    第6章 基本数字运算250 

    6.1 如何判断一个自然数是否为某个数的平方250 

    6.2 如何判断一个数是否为2的n次方252 

    6.3 如何不使用除法操作符实现两个正整数的除法254 

    6.4 如何
查看详情
您可能感兴趣 / 更多
程序员面试算法宝典
程序员超强大脑
[荷兰]费莉安·赫尔曼斯(Felienne Hermans)
程序员面试算法宝典
程序员考前突破:考点精讲、真题精解、难点精练
詹宏锋 李锋 许纪贤 编著
程序员面试算法宝典
程序员的README
[美]克里斯·里科米尼(Chris Riccomini) (美) 德米特里·里
程序员面试算法宝典
程序员的制胜技
[土耳其]塞达特·卡帕诺格鲁(Sedat Kapanoglu)
程序员面试算法宝典
程序设计基础(C语言)(第3版)
刘明军 袁宁 张玲 蒋彦 赵亚欧 编著;潘玉奇 主编;蔺永政
程序员面试算法宝典
程序设计基础(Python语言)(微课视频版)
陈守森;刘衍琦;邵燕;张言上;任爱华
程序员面试算法宝典
程序设计算法基础
于瑞国 主编;赵满坤 副主编;喻梅;李雪威
程序员面试算法宝典
程序员的算法趣题2
[日]增井敏克
程序员面试算法宝典
程序性能优化理论与方法
韩林;高伟
程序员面试算法宝典
程序设计基础实验和学习指导(C语言)(微课版)
苏小红 张羽 袁永峰 李东
程序员面试算法宝典
程序设计基础(C语言)习题集与实验指导(第3版)
蒋彦 袁宁 张玲 赵亚欧 编著;潘玉奇 主编;蔺永政
程序员面试算法宝典
程序设计基础(C语言)教程
刘媛媛;雷莉霞;胡平
系列丛书 / 更多
程序员面试算法宝典
程序员超强大脑
[荷兰]费莉安·赫尔曼斯(Felienne Hermans)
程序员面试算法宝典
程序员考前突破:考点精讲、真题精解、难点精练
詹宏锋 李锋 许纪贤 编著
程序员面试算法宝典
程序员的README
[美]克里斯·里科米尼(Chris Riccomini) (美) 德米特里·里
程序员面试算法宝典
程序员的制胜技
[土耳其]塞达特·卡帕诺格鲁(Sedat Kapanoglu)
程序员面试算法宝典
程序设计基础(C语言)(第3版)
刘明军 袁宁 张玲 蒋彦 赵亚欧 编著;潘玉奇 主编;蔺永政
程序员面试算法宝典
程序设计基础(Python语言)(微课视频版)
陈守森;刘衍琦;邵燕;张言上;任爱华
程序员面试算法宝典
程序设计算法基础
于瑞国 主编;赵满坤 副主编;喻梅;李雪威
程序员面试算法宝典
程序员的算法趣题2
[日]增井敏克
程序员面试算法宝典
程序性能优化理论与方法
韩林;高伟
程序员面试算法宝典
程序设计基础实验和学习指导(C语言)(微课版)
苏小红 张羽 袁永峰 李东
程序员面试算法宝典
程序设计基础(C语言)习题集与实验指导(第3版)
蒋彦 袁宁 张玲 赵亚欧 编著;潘玉奇 主编;蔺永政
程序员面试算法宝典
程序设计基础(C语言)教程
刘媛媛;雷莉霞;胡平
相关图书 / 更多
程序员面试算法宝典
程序员超强大脑
[荷兰]费莉安·赫尔曼斯(Felienne Hermans)
程序员面试算法宝典
程序员考前突破:考点精讲、真题精解、难点精练
詹宏锋 李锋 许纪贤 编著
程序员面试算法宝典
程序员的README
[美]克里斯·里科米尼(Chris Riccomini) (美) 德米特里·里
程序员面试算法宝典
程序员的制胜技
[土耳其]塞达特·卡帕诺格鲁(Sedat Kapanoglu)
程序员面试算法宝典
程序设计基础(C语言)(第3版)
刘明军 袁宁 张玲 蒋彦 赵亚欧 编著;潘玉奇 主编;蔺永政
程序员面试算法宝典
程序设计基础(Python语言)(微课视频版)
陈守森;刘衍琦;邵燕;张言上;任爱华
程序员面试算法宝典
程序设计算法基础
于瑞国 主编;赵满坤 副主编;喻梅;李雪威
程序员面试算法宝典
程序员的算法趣题2
[日]增井敏克
程序员面试算法宝典
程序性能优化理论与方法
韩林;高伟
程序员面试算法宝典
程序设计基础实验和学习指导(C语言)(微课版)
苏小红 张羽 袁永峰 李东
程序员面试算法宝典
程序设计基础(C语言)习题集与实验指导(第3版)
蒋彦 袁宁 张玲 赵亚欧 编著;潘玉奇 主编;蔺永政
程序员面试算法宝典
程序设计基础(C语言)教程
刘媛媛;雷莉霞;胡平