年后是一波大的找工作和跳槽浪潮。很多朋友都在忙着面试相关的准备。本文是我一位从事一线开发十余年架构师朋友整理出来的,所有面试资源,均是他本人在长期学习和工作中的过程中汇总,并以笔记形式记录下来的。看完本文,如果你有需要,尽管拿走好了~
获取方式详见文末。
概述
最近在准备面试的东西,整理了一些读书笔记分享给各位,大家可以自由下载,以下内容完全原创。
前两部分是对于一些 经典书籍的读书笔记和面试题,都是看书的时候觉得比较重要的部分,就通过Word文档的形式记录下来了。因为一直从事的是Android方面的相关工作,因此还是围绕着Android展开,包括了Java、C++、网络、数据结构等等。
最后一部分是面试时候的算法题,根据问题的类型分为了数组、数字、字符串、图、树等等。
先扯点题外话,这些基础知识虽然很久没看了,不过幸亏有这些笔记,现在看起来很快,像C++ Primer和Java面向对象编程这样很厚的书,通过看这些笔记两个小时就能复习完了。因此也建议大家平时看书的时候,多用文档和博客的形式记录下来,对于未来很有用。
我平时在学习的时候,一直秉承着要建立一个完整的架构体系,就像今年定的目标,要把之前两年的工作都总结一下,梳理成一个完整的框架,所以才有了 Android 知识梳理目录,每次完成一篇文章,就点亮了知识体系上的一个小点。
第一部分
-
Java面向对象编程
-
Unix网络编程
-
Linux程序设计
-
C++ Primer
-
C
-
TCP高效编程
-
STL源码解析
-
C++ 面试题
-
Android

第二部分
-
C++高效编程
-
计算机网络
-
算法导论
-
腾讯笔试题
-
终极版笔记
-
设计模式
-
数据结构
-
深度搜索C++对象模型
-
操作系统
-
海量数据处理

第三部分
这一部分是上学时候学习算法程序记录,都是通过C++来实现的,题目来自于编程之美、编程珠玑、网上的面试题等等,基本上囊括了所有可能会问到的算法题,大家可以当作复习的大纲。比较遗憾的是当时只记录了实现的代码,当时没有写下解答的思路以及分析,这个会在之后的博客中慢慢完善。
1.字符串
-
替换字符串中的空格
-
输入一个字符串,打印出该字符串的所有排列
-
第一个只出现一次的字符
-
翻转句子
-
计算字符串之间的距离
-
最短摘要生成
-
查找字符串中的最长重复子串
-
在字符串中找出最长的连续数字串
-
字符串转换成整数输出
-
在字符串中删除指定字符
-
判断一个字符串是否是对称的
-
将字符串中的移到前部,并且不改变非的顺序
-
不开辟用于交换的空间,完成字符串的逆序
-
LCS
-
字符串相关的操作函数
2.图
-
广度优先搜索
-
深度优先搜索
-
Bellman-Ford算法
-
Dijkstra算法
-
Floyed-Warshall算法
-
Johnson算法
3.数字
-
斐波那契数列(循环算法)
-
斐波那契数列(矩阵算法)
-
跳台阶问题
-
数值的整数次方
-
打印1到最大的n位数
-
计算从1到n中1出现的个数
-
求两个数的二进制表示中有多少个是不同的
-
给定一个整数N,求N!的末尾有多少个0
-
给定一个整数N,求N!的二进制表示中最低位1的位置
-
最大公约数
-
精确地表达浮点数
-
任意给定一个正整数N,求一个最小的正整数M,使得N*M的十进制表示里仅含有0和1
-
计算1+2+..n
4.栈
-
创建一个空栈
-
压入
-
返回栈顶元素
-
弹出
-
打印栈内元素
-
获得栈中最小元素
-
将栈内元素反向
-
判断出栈顺序是否正确
-
利用两个栈实现队列
5.数组
-
二维数组的整数查找
-
旋转数组中的最小数字(旋转数组中的最大数字)
-
调整数组使奇数位于偶数之前
-
找出数组中出现次数超过一半的数字
-
找到最小的k个数
-
连续子数组的最大和
-
连续子数组的最大和(二维)
-
求数组当中的逆序对
-
查找数组中数字出现的次数
-
查找数组中只出现一次的两个数字
-
在有序数组中查找和为s的两个数
-
查找和为s的连续整数
-
求数组当中的最长递增子序列(求数组当中的最长递减子序列)
-
数组分割
-
数组当中的最大最小值
-
区间重合判断
-
一个整数数组,长度为n,将其分为m份,使各份的和相等,求m的最大值
6.排序
-
插入排序
-
希尔排序
-
选择排序
-
冒泡排序
-
计数排序
-
基数排序
-
归并排序
-
快速排序
-
双向扫描的快速排序
-
堆排序
7.链表
-
新建链表
-
反转链表(非递归)
-
反转链表(递归)
-
获得链表倒数第k个结点
-
获得链表的中间结点
-
删除链表结点
-
交换链表结点
-
获得带环链表中进入环的第一个元素
-
获得相交链表的结点
-
反向打印链表
-
链表排序
8.二分查找
-
普通二分查找
-
查找关键字第一次出现的位置
-
查找关键字最后一次出现的位置
-
查找小于关键字的最大数字出现的位置
-
查找大于关键字的最小数字出现的位置
-
在经过移位的有序数组中查找关键字出现的位置
9.二叉查找树
-
初始化
-
插入
-
搜索
-
最小值
-
删除
-
非递归先序遍历
-
非递归中序遍历
-
非递归后序遍历
10.二叉树
-
创建二叉树
-
递归先序遍历二叉树
-
递归中序遍历二叉树
-
递归后序遍历二叉树
-
分层打印二叉树
-
打印二叉树第N层
-
统计二叉树叶结点个数
-
统计二叉树的高度
-
获得二叉树的镜像
-
判断元素是否存在于二叉树中
-
打印二叉树中和为s的路径
-
获得二叉树的最大距离
-
判断二叉树是否是平衡树
-
将二叉树转换成为链表
-
判断数组是否为二叉树的后序遍历
-
判断某树是否是另一棵树的子树
-
根据前序和中序序列重建二叉树
-
把一个有序数组插入到二叉树中
11.动态规划
-
建立最优二叉查找树
-
矩阵链乘法
-
钢条切割问题
-
饮料问题
-
背包问题
-
·KMP算法

面试资料;
加Android进阶群701740775,找管理员免费领取一份详细的面试资料。麻烦备注一下简书领取面试资料谢谢
附录
针对工作1到5年,想系统提升高级工程师的朋友

Android进阶资料;
加Android进阶群701740775,找管理员免费领取。麻烦备注一下简书领取Android进阶资料谢谢
网友评论