读书笔记

程序员面试攻略

2008年3月23日 阅读(414)

看来今天看书的效率蛮高的,竟然看了两本,虽然都不是很厚,200页左右。
这本也是国外写的,跟ms出的那本<<编程之美>>很类似,不过这个题目更简短些,覆盖了面试的方方面面,很多题目都基本上见过所以看的比较快。

总体来说,写的还算不错,例子也比较合适

下面说几个常见的,几个的思路基本上还是自己搞的
1.按照树的结构,打印一棵树:
中序遍历得到距离左边的位置,bfs打印

2.带有head,tail链表的插入,删除
注意head,tail的边界下的赋值及变化

3.lCA(最深公共祖先):
特殊的对于bst,可以看到其最深祖先是出于二者之间的那个,而其他祖先则均比他们大
一般的来说,可以通过遍历祖先存在数组,比较相同的那个
另外一种思路是将节点指向根,使其形成环-〉链表环的检测,这个方法对于具有parent指针的树比较有效
其他的可以参考tarjin离线算法

对于链表来说,设两个指针是个很灵巧的思路可以解决->求链表中点,求距最后节点距离m的节点, 以及检测环里的追步法

4.海量整型数求第k大:
整形数可以先分段统计,然后再在相应段内计数排序
同时该思路对于2亿元素,寻找缺失整数元素也可以

5.n个有序列求第k大
减治法:比较每个序列的第k/n大元素,舍弃最小的那个序列之前的元素,同时变成求第(n-1)/nk大元素

6.颠倒单词出现顺序
不断重复reverse操作,这也是一个通用思路,比如可以求一个串的循环移位的结果。

7.第一个无重复字符
字符hash

8.删除指定字符
字符hash+空间重用

9.判断矩形是否相交
考虑不相交的条件

10.生产者消费者模型

11.统计1的个数
x=x&(x-1)

12.递归到非递归
利用栈
另,直接考虑迭代:
树的中序,可以借鉴bst的后继者实现,迭代求后继者

13.智力:
天平承重,过桥问题,猎狗追兔子,躲车问题,开关(完全平方数)

附目录:
译者序
第2版前言
第1版前言
第1章  求职之前        1
1.1  了解自己        1
1.2  了解市场        3
1.3  掌握市场需要的技能        4
1.4  处理自己的在线资料        6
1.5  本章小结        6
第2章  求职过程        7
2.1  寻找公司并进行联系        7
2.2  面试过程        10
2.3  招聘者的角色        11
2.4  工作邀约和协商        12
2.5  本章小结        15
第3章  编程问题的解答思路        16
3.1  面试过程        16
3.2  解决问题        19
3.3  分析解决方案        21
3.4  本章小结        25
第4章  链表        26
4.1  链表的种类        26
4.2  基本链表操作        28
4.3  链表问题        31
4.4  本章小结        54
第5章  树和图        55
5.1  树        55
5.2  图        61
5.3  二叉树问题        62
5.4  本章小结        67
第6章  数组和字符串        68
6.1  数组        68
6.2  字符串        72
6.3  数组和字符串问题        74
6.4  本章小结        90
第7章  递归        92
7.1  理解递归        92
7.2  递归问题        95
7.3  本章小结        109
第8章  并发        110
8.1  基本线程概念        110
8.2  并发问题        115
8.3  哲学家进餐        120
8.4  本章小结        123
第9章  面向对象编程        124
9.1  基础知识        124
9.2  构造与析构        127
9.3  面向对象编程问题        127
9.4  本章小结        132
第10章  数据库        133
10.1  数据库基础        133
10.2  数据库问题        138
10.3  本章小结        142
第11章  其他编程主题        143
11.1  图形学        143
11.2  位操作        144
11.3  图形学和位操作问题        146
11.4  本章小结        157
第12章  计数、测量和排序难题        158
12.1  处理难题        158
12.2  难题        162
12.3  本章小结        172
第13章  图形和空间方面的难题        173
13.1  先画下来        173
13.2  图形和空间问题        174
13.3  本章小结        184
第14章  知识问题        185
14.1  准备        185
14.2  问题        186
14.3  本章小结        191
第15章  非技术问题        192
15.1  为什么要问非技术问题        192
15.2  问题        193
15.3  本章小结        199
第16章  结束语        200
附录A  简历        201

You Might Also Like