笔试面试必会代码 以及必看书籍
原地址:http://blog.csdn.net/liuqiyao_01/article/details/16960695
笔试面试必会代码
链表:
在链表中找到第一个含有某值的节点并删除该结点
从头到尾打印链表
合并两个排序链表
反转链表
链表中倒数第k个结点
O(1)时间删除链表结点
复杂链表的复制
两个链表的第一个公共结点
二叉树:
深度优先遍历
广度优先遍历
求二叉树的深度和宽度或者面积
重建二叉树
判断树a是不是树b的子结构
二叉树镜像
从上往下打印二叉树
二叉树的后序遍历序列
二叉树中和为某一值的路径
二叉搜索树变成双向链表
字符串:
Strstr(kmp)
Strcmp
Strcpy
Memcpy
字典树
线段树
后缀树判断最长重复子串
字符串中替换空格
字符串的全排列
翻转单词顺序/左旋转字符串
字符串转化成整数
其他数据结构:
两个栈实现队列
两个队列实现一个栈
包含min函数的栈
栈的压入弹出序列
算法:
Quick sort
二进制中1的个数
二维数组中的数的查找
旋转数组中的最小数字
打印1到最大n位数(数组模拟)
调整数组顺序使奇数位于偶数前面
顺时针打印矩阵
数组中次数超过一半的数字
最小的k个数
数组排成最小的数
丑数
数组中第一个只出现一个的字符
数组中的逆序对
数在数组中出现的次数
数组中一个只出现一次的数字(其他都出现两次)
数组中两个只出现一次的数字(其他都出现两次)
数组中三个只出现一次的数字(其他都出现两次)
数组中和威s额两个数字/和为s的连续正数序列
N个骰子的点数
扑克牌的顺子
圆圈中最后剩下的数字(约瑟夫环)
动态规划:
求一个序列的最大连续子序列乘积
连续数组的最大和
C++特性:
不用for while if else switch case 以及 ?: 求1+2+……+n的的和
深拷贝与浅拷贝
设计一个不能被继承的类
内存分配的代码
手动修改栈空间
不用sizeof如何判断操作系统是16位还是32位
大小端
不用+号进行加法运算
不用/号进行除法运算
设计模式:
实现一个单例模式
必看书籍
必看:
《剑指offer》 《编程之美》 《程序员面试笔试宝典》
选看:
《算法导论》 《tcp/ip详解 卷一》 《unix环境高级编程》 《算法导论》 《编程珠玑》
c++:
《effective C++》
java:
《effective java》 《java编程思想》
python:
《python基础教程》 《Head First Python》