本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
9787111651536 9787121123368
C#程序员面试算法宝典
《C#程序员面试算法宝典》是一本讲解程序员面试笔试算法的书籍,代码采用C#语言进行编写,在写法上,除了讲解如何解答算法问题以外,还引入了实例辅以说明,让读者能够更加容易地理解。
《C#程序员面试算法宝典》将程序员面试笔试过程中典型算法类真题尽收囊中,在题目的广度上,通过各种渠道,搜集了近3年来几乎所有IT企业面试笔试算法高频题目,所选择题目均为企业招聘使用的真题。在题目的深度上,本书由浅入深,细致地分析每一个题目,并提炼归纳。本书结构合理,条理清晰,对于读者进行学习与检索意义重大。
《C#程序员面试算法宝典》可作为计算机相关毕业生面试笔试的求职用书,也可以作为本科生、研究生学习数据结构与算法的辅导书籍,同时也适合期望在计算机软硬件行业大显身手的计算机爱好者阅读。
赵大有,北京邮电大学软件工程硕士,曾负责国家211重点大学海量资源储存,搭建了大型分布式存储系统,现就职于途家网负责高并发库存、产品体系搭建与维护、复杂业务服务体系系统的搭建与维护工作,对.Net、Java有深刻认识,善于组织协调解决问题,具有丰富的项目经验。作者公众号:dayousay
前言
面试笔试经验技巧篇
经验技巧1 如何巧妙地回答面试官的问题2
经验技巧2 如何回答技术性的问题3
经验技巧3 如何回答非技术性问题5
经验技巧4 如何回答快速估算类问题5
经验技巧5 如何回答算法设计问题6
经验技巧6 如何回答系统设计题9
经验技巧7 如何解决求职中的时间冲突问题11
经验技巧8 如果面试问题曾经遇见过,是否要告知12
经验技巧9 被企业拒后是否可以再申请13
经验技巧10 如何应对自己不会回答的问题13
经验技巧11 如何应对面试官的“激将法”语言14
经验技巧12 如何处理与面试官持不同观点的问题15
经验技巧13 什么是职场暗语15
面试笔试真题解析篇
1章 链表21
1.1 如何实现链表的逆序22
1.2 如何从无序链表中移除重复项26
1.3 如何计算两个单链表所代表的数之和30
1.4 如何对链表进行重新排序33
1.5 如何找出单链表中的倒数k个元素36
1.6 如何检测一个较大的单链表是否有环40
1.7 如何把链表相邻元素翻转43
1.8 如何把链表以k个结点为一组进行翻转45
1.9 如何合并两个有序链表48
1.10 如何在只给定单链表中某个结点的指针的情况下删除该结点51
1.11 如何判断两个单链表(无环)是否交53
2章 栈与队列57
2.1 如何实现栈57
2.2 如何实现队列62
2.3 如何翻转栈的所有元素68
2.4 如何根据入栈序列判断可能的出栈序列72
2.5 如何用O(1)的时间复杂度求栈中小元素74
2.6 如何用两个栈模拟队列作76
2.7 如何设计一个排序系统77
2.8 如何实现LRU缓存方案79
2.9 如何从给定的车票中找出旅程的路线81
2.10 如何从数组中找出满足a+b=c+d的两个数对83
3章 二树86
3.1 二树基础知识86
3.2 如何把一个有序整数数组放到二树中88
3.3 如何从顶部开始逐层遍历二树结点数据90
3.4 如何求一棵二树的子树的和92
3.5 如何判断两棵二树是否相等94
3.6 如何把二树转换为双向链表95
3.7 如何判断一个数组是否是二元查找树后序遍历的序列97
3.8 如何找出排序二树上任意两个结点的近共同父结点99
3.9 如何复制二树105
3.10 如何在二树中找出与输入整数相等的所有路径106
3.11 如何对二树进行镜像反转108
3.12 如何在二排序树中找出一个大于中间值的结点110
3.13 如何在二树中找出路径的和113
3.14 如何实现反向DNS查找缓存115
4章 数组119
4.1 如何找出数组中的重复元素119
4.2 如何查找数组中元素的值和小值126
4.3 如何找出旋转数组的小元素130
4.4 如何找出数组中出现奇数次的数133
4.5 如何找出数组中k小的数136
4.6 如何求数组中两个元素的小距离140
4.7 如何求解小三元组距离142
4.8 如何求数组中对值小的数147
4.9 如何求数组连续和151
4.10 如何找出数组中出现1次的数155
4.11 如何在不排序的情况下求数组中的中位数158
4.12 如何求集合的所有子集159
4.13 如何对数组进行循环移位163
4.14 如何求解迷宫问题166
4.15 如何求解数组分为和相等的m份后m值问题168
4.16 如何求一个数组的递减子序列170
4.17 如何求解和为n的连续正数序列173
4.18 如何寻找丑数175
4.19 如何找到数组元素连接起来排成的所有数字中小的一个178
4.20 如何找出数组中出现次数过了一半的那个数字179
4.21 如何找出数组中左边的数都小于等于它,右边的数都大于等于它的数180
4.22 如何进行大整数相乘182
4.23 如何求集合的所有子集184
4.24 如何知道拿走了哪个数186
4.25 如何求解n-m问题187
4.26 如何求2个有序数组合并后的中位数188
4.27 如何找出n个整数中小的k个数190
4.28 如何求解数组中逆序对的个数192
4.29 如何找出数组的峰值194
4.30 如何找出数组中的乘积子序列195
4.31 如何对数组进行旋转196
4.32 如何求数组的子数组差199
4.33 如何统计比给定整数小的数的个数201
4.34 如何进行摇摆排序203
4.35 如何求解数组排序前后的间隔204
4.36 如何找出和接近0的子数组206
4.37 如何找出数组中和为指定值的元组208
4.38 如何计算买股票的佳时间210
4.39 如何确定出发加油站问题211
5章 字符串213
5.1 如何求一个字符串的所有排列213
5.2 如何求两个字符串的公共子串219
5.3 如何判断两个字符串是否为换位字符串222
5.4 如何判断两个字符串的包含关系224
5.5 如何对由大小写字母组成的字符数组排序227
5.6 如何消除字符串的内嵌括号228
5.7 如何判断字符串是否是整数229
5.8 如何实现字符串的匹配232
5.9 如何求字符串的编辑距离236
5.10 如何查找到达目标词的短链长度238
5.11 如何左旋转字符串241
5.12 如何在一个字符串中找到一个只出现一次的字符242
5.13 如何找出字符串中连续的数字串243
5.14 如何进行字符串的串联244
5.15 如何从一个字符串中删除另一个字符串的所有的字符246
5.16 如何判断字符串A中是否包含由字符串B中字
程序员修炼之道:从小工到专家
内容简介
《程序员修炼之道:从小工到专家》由一系列独立的部分组成,涵盖的主题从个人责任、职业发展,直到用于使代码保持灵活、并且易于改编和复用的各种架构技术,利用许多富有娱乐性的奇闻轶事、有思想性的例子及有趣的类比,全面阐释了软件开发的许多不同方面的较佳实践和重大陷阱。无论你是初学者,是有经验的程序员,还是软件项目经理,本书都适合你阅读。
目录
前言
序
1章 注重实效的哲学
1 我的源码让猫给吃了
2 软件的熵
3 石头汤与煮青蛙
4 足够好的软件
5 你的知识资产
6 交流
2章 注重实效的途径
7 重复的危害
8 正交性
9 可撤消性
10 曳光弹
11 原型与便笺
12 领域语言
13 估算
3章 基本工具
14 纯文本的威力
15 shell游戏
16 强力编辑
17 源码控制
18 调试
19 文本纵
20 代码生成器
4章 注重实效的偏执
21 按合约设计
22 死程序不说谎
23 断言式编程
24 何时使用异常
25 怎样配平资源
5章 弯曲,或折断
26 解耦与得墨忒耳法则
27 元程序设计
28 时间耦合
29 它只是视图
30 黑板
6章 当你编码时
31 靠巧合编程
32 算法速率
33 重构
34 易于测试的代码
35 邪恶的向导
7章 在项目开始之前
36 需求之坑
37 解开不可能解开的谜题
38 等你准备好
39 规范陷阱
40 圆圈与箭头
8章 注重实效的项目
41 注重实效的团队
42 无处不在的自动化
43 无情的测试
44 全都是写
45 极大的期望
46 傲慢与偏见
附录A 资源
协会
建设藏书库
Internet资源
参考文献
附录B 练习解答
索引
注重实效的程序员之快速参考指南