科技
类型
可以朗读
语音朗读
277千字
字数
2020-05-01
发行日期
展开全部
主编推荐语
覆盖近3年C#程序员面试笔试中超过98%的高频算法知识点。
内容简介
本书是一本讲解程序员面试笔试真题的书籍,代码采用C#语言进行编写,在写法上,除了讲解如何解答算法问题以外,还引入了例子辅以说明,让读者能够更加容易地理解。
本书将程序员面试笔试过程中各类算法类真题一网打尽,在题目的广度上,通过各种渠道,搜集了近3年来几乎所有IT企业面试笔试算法高频题目,所选择题目均为企业招聘使用题目。
在题目的深度上,本书由浅入深,庖丁解牛式地分析每一个题目,并提炼归纳,同时,引入例子与源代码、时间复杂度与空间复杂度的分析,而这些内容是其它所有同类书籍所没有的。
本书根据真题所属知识点进行分门别类,结构合理,条理清晰,对于读者进行学习与检索意义重大。
目录
- 版权信息
- 前言
- 面试笔试经验技巧篇
- 经验技巧1 如何巧妙地回答面试官的问题
- 经验技巧2 如何回答技术性的问题
- 经验技巧3 如何回答非技术性问题
- 经验技巧4 如何回答快速估算类问题
- 经验技巧5 如何回答算法设计问题
- 经验技巧6 如何回答系统设计题
- 经验技巧7 如何解决求职中的时间冲突问题
- 经验技巧8 如果面试问题曾经遇见过,是否要告知
- 经验技巧9 被企业拒绝后是否可以再申请
- 经验技巧10 如何应对自己不会回答的问题
- 经验技巧11 如何应对面试官的“激将法”语言
- 经验技巧12 如何处理与面试官持不同观点的问题
- 经验技巧13 什么是职场暗语
- 面试笔试真题解析篇
- 第1章 链表
- 1.1 如何实现链表的逆序
- 1.2 如何从无序链表中移除重复项
- 1.3 如何计算两个单链表所代表的数之和
- 1.4 如何对链表进行重新排序
- 1.5 如何找出单链表中的倒数第k个元素
- 1.6 如何检测一个较大的单链表是否有环
- 1.7 如何把链表相邻元素翻转
- 1.8 如何把链表以k个结点为一组进行翻转
- 1.9 如何合并两个有序链表
- 1.10 如何在只给定单链表中某个结点的指针的情况下删除该结点
- 1.11 如何判断两个单链表(无环)是否交叉
- 第2章 栈与队列
- 2.1 如何实现栈
- 2.2 如何实现队列
- 2.3 如何翻转栈的所有元素
- 2.4 如何根据入栈序列判断可能的出栈序列
- 2.5 如何用O(1)的时间复杂度求栈中最小元素
- 2.6 如何用两个栈模拟队列操作
- 2.7 如何设计一个排序系统
- 2.8 如何实现LRU缓存方案
- 2.9 如何从给定的车票中找出旅程的路线
- 2.10 如何从数组中找出满足a+b=c+d的两个数对
- 第3章 二叉树
- 3.1 二叉树基础知识
- 3.2 如何把一个有序整数数组放到二叉树中
- 3.3 如何从顶部开始逐层遍历二叉树结点数据
- 3.4 如何求一棵二叉树的最大子树的和
- 3.5 如何判断两棵二叉树是否相等
- 3.6 如何把二叉树转换为双向链表
- 3.7 如何判断一个数组是否是二元查找树后序遍历的序列
- 3.8 如何找出排序二叉树上任意两个结点的最近共同父结点
- 3.9 如何复制二叉树
- 3.10 如何在二叉树中找出与输入整数相等的所有路径
- 3.11 如何对二叉树进行镜像反转
- 3.12 如何在二叉排序树中找出第一个大于中间值的结点
- 3.13 如何在二叉树中找出路径最大的和
- 3.14 如何实现反向DNS查找缓存
- 第4章 数组
- 4.1 如何找出数组中唯一的重复元素
- 4.2 如何查找数组中元素的最大值和最小值
- 4.3 如何找出旋转数组的最小元素
- 4.4 如何找出数组中出现奇数次的数
- 4.5 如何找出数组中第k小的数
- 4.6 如何求数组中两个元素的最小距离
- 4.7 如何求解最小三元组距离
- 4.8 如何求数组中绝对值最小的数
- 4.9 如何求数组连续最大和
- 4.10 如何找出数组中出现1次的数
- 4.11 如何在不排序的情况下求数组中的中位数
- 4.12 如何求集合的所有子集
- 4.13 如何对数组进行循环移位
- 4.14 如何求解迷宫问题
- 4.15 如何求解数组分为和相等的m份后m最大值问题
- 4.16 如何求一个数组的最长递减子序列
- 4.17 如何求解和为n的连续正数序列
- 4.18 如何寻找丑数
- 4.19 如何找到数组元素连接起来排成的所有数字中最小的一个
- 4.20 如何找出数组中出现次数超过了一半的那个数字
- 4.21 如何找出数组中左边的数都小于等于它,右边的数都大于等于它的数
- 4.22 如何进行大整数相乘
- 4.23 如何求集合的所有子集
- 4.24 如何知道拿走了哪个数
- 4.25 如何求解n-m问题
- 4.26 如何求2个有序数组合并后的中位数
- 4.27 如何找出n个整数中最小的k个数
- 4.28 如何求解数组中逆序对的个数
- 4.29 如何找出数组的峰值
- 4.30 如何找出数组中的乘积最大子序列
- 4.31 如何对数组进行旋转
- 4.32 如何求数组的最大子数组差
- 4.33 如何统计比给定整数小的数的个数
- 4.34 如何进行摇摆排序
- 4.35 如何求解数组排序前后最大的间隔
- 4.36 如何找出和最接近0的子数组
- 4.37 如何找出数组中和为指定值的四元组
- 4.38 如何计算买股票的最佳时间
- 4.39 如何确定出发加油站问题
- 第5章 字符串
- 5.1 如何求一个字符串的所有排列
- 5.2 如何求两个字符串的最长公共子串
- 5.3 如何判断两个字符串是否为换位字符串
- 5.4 如何判断两个字符串的包含关系
- 5.5 如何对由大小写字母组成的字符数组排序
- 5.6 如何消除字符串的内嵌括号
- 5.7 如何判断字符串是否是整数
- 5.8 如何实现字符串的匹配
- 5.9 如何求字符串的编辑距离
- 5.10 如何查找到达目标词的最短链长度
- 5.11 如何左旋转字符串
- 5.12 如何在一个字符串中找到第一个只出现一次的字符
- 5.13 如何找出字符串中连续最长的数字串
- 5.14 如何进行字符串的串联
- 5.15 如何从一个字符串中删除另一个字符串的所有的字符
- 5.16 如何判断字符串A中是否包含由字符串B中字符重新排列成的新字符串
- 5.17 如何进行子串查找
- 5.18 如何实现字符串的替换
- 5.19 如何进行通配符匹配
- 5.20 如何解决字符串包含问题
- 5.21 如何求解最小子串覆盖问题
- 5.22 如何找出字符串的最长公共前缀
- 5.23 如何找到数组删除k个数字之后的最小正整数
- 5.24 如何查找没有重复字符的最长子串
- 第6章 数字
- 6.1 如何不使用库函数求解整数x的平方根
- 6.2 如何进行骰子求和
- 6.3 如何求解最多有多少个点在一条直线上的问题
- 6.4 如何进行数字的二进制翻转
- 6.5 如何把数字转换为二进制
- 6.6 如何进行指数运算
- 6.7 如何查找连续数字中某个数字出现的次数
- 6.8 如何反转整数
- 6.9 如何判断一个数字是否是回文数
- 6.10 如何判断一个自然数是否是某个数的二次方
- 6.11 如何判断一个数是否为2的n次方
- 6.12 如何根据已知随机数生成函数计算新的随机数
- 6.13 如何判断1024!末尾有多少个0
- 6.14 如何求有序数列的第1500个数的值
- 6.15 如何求二进制数中1的个数
- 6.16 如何找出最小的不重复数
- 6.17 如何计算一个数的n次方
- 第7章 大数据
- 7.1 如何从大量的url中找出相同的url
- 7.2 如何从大量数据中找出高频词
- 7.3 如何找出访问百度最多的IP
- 7.4 如何在大量的数据中找出不重复的整数
- 7.5 如何查询最热门的查询串
- 7.6 如何统计不同电话号码的个数
- 7.7 如何从5亿个数中找出中位数
- 7.8 如何按照query的频度排序
- 7.9 如何找出排名前500的数
- 第8章 排序
- 8.1 如何进行选择排序
- 8.2 如何进行插入排序
- 8.3 如何进行冒泡排序
- 8.4 如何进行归并排序
- 8.5 如何进行快速排序
- 8.6 如何进行希尔排序
- 8.7 如何进行堆排序
- 8.8 各种排序算法有什么优劣?
- 第9章 排列组合与概率
- 9.1 如何求数字的组合
- 9.2 如何拿到最多金币
- 9.3 如何求正整数n所有可能的整数组合
- 9.4 如何用一个随机函数得到另外一个随机函数
- 9.5 如何等概率地从大小为n的数组中选取m个整数
- 9.6 如何组合1、2、5这三个数使其和为100
- 9.7 如何判断还有几盏灯泡亮着
展开全部
出版方
机械工业出版社
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。