C#程序员面试算法宝典

C#程序员面试算法宝典

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

编辑推荐

覆盖近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 如何判断还有几盏灯泡亮着

C#程序员面试算法宝典是2020年由机械工业出版社出版,作者猿媛之家 组编。

得书感谢您对《C#程序员面试算法宝典》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

你可能喜欢
百面深度学习 算法工程师带你去面试 电子书
适读人群 :本书适合相关专业的在校学生检查和加强对所学知识点的掌握程度,求职者快速复习和补充相关的深度学习知识,以及算法工程师作为工具书随时参阅。此外,非相关专业、但对人工智能或深度学习感兴趣的研究人员,也可以通过本书大致了解一些热门的人工智能应用、深度学习模型背后的核心算法及其思想。 不可不读的深度学习面试宝典《百面机器学习》姊妹篇。 Hulu诚意出品,全面收录135道算法面试题。 一线大厂算法工程师合力创作,直击面试要点。 从算法与模型到多领域应用,全方位解读深度学习。 诚意推荐 吴军 / 《浪潮之巅》《数学之美》作者 华先胜 / 阿里巴巴达摩院人工智能中心主任,IEEE Fellow 李沐 / AWS首席科学家,《动手学深度学习》作者 孙茂松 / 清华大学人工智能研究院常务副院长 本书适合相关专业的在校学生检查和加强对所学知识点的掌握程度,求职者快速复习和补充相关的深度学习知识,以及算法工程师作为工具书随时参阅。此外,非相关专业、但对人工智能或深度学习感兴趣的研究人员,也可以通过本书大致了解一些热门的人工智能应用、深度学习模型背后的核心算法及其思想。
编程竞赛宝典:C++语言和算法入门 电子书
信息学奥赛金牌教练精心之作,算法竞赛宝典。
C#完全自学教程 电子书
本书从初学者角度出发,介绍了使用C#进行WinForms程序开发的常用技术和方法。
C#程序设计教程 电子书
语言严谨、精练。以VisualStudio2017为基础循序渐进地介绍了C#入门所需的各方面知识,对基本概念和技术进行了清楚准确的解释并结合实例加以说明。合理、有效的组织。以实践应用为目标,理论阐述主要围绕实际应用技术组织和展开,练习的重要性得到体现,不再附属于相关理论知识。
程序员超强大脑 电子书
专为程序员而写的大脑使用指南,令程序员大佬拍案叫绝的认知科学。