update
This commit is contained in:
+22
-21
@@ -1,9 +1,9 @@
|
||||
|
||||
|
||||
|
||||
1. 面问的主要是知识点。
|
||||
2. 面问主要考察的是设计解决方案的能力,另外辅助追问的方式,考察深度和广度,回答过程中需要列出适合的具体例子,方案还需要细致到具体的关键的函数名称,方法。
|
||||
3. 考察设计模式的理解,算法
|
||||
1面问的主要主要知识点。
|
||||
2面问主要考察的是设计解决方案的能力,另外辅助追问的方式,考察深度和广度,回答过程中需要列出适合的具体例子,方案还需要细致到具体的关键的函数名称,方法。
|
||||
3面考察设计模式的理解,算法
|
||||
|
||||
|
||||
|
||||
@@ -85,31 +85,32 @@ asihttp代码原理 ,异步请求的原理,异步请求最大数目,为什
|
||||
|
||||
|
||||
|
||||
|
||||
### 杂谈
|
||||
简述push原理,push的证书和其它的右什么不一样?
|
||||
|
||||
|
||||
内存寻址方式,
|
||||
寄存器直接寻址
|
||||
基址寻址:方便访问k条记录
|
||||
基址+变址寻址:访问一条记录的字段
|
||||
autolayout
|
||||
core data
|
||||
|
||||
|
||||
|
||||
比较32位平台和64位平台不同
|
||||
内存寻址空间变大
|
||||
基本数据类型的长度也会有些变化(long ,longlong, ptr)
|
||||
|
||||
内存寻址方式:
|
||||
寄存器直接寻址
|
||||
基址寻址:方便访问k条记录
|
||||
基址+变址寻址:访问一条记录的字段
|
||||
|
||||
|
||||
|
||||
比较32位平台和64位平台不同
|
||||
内存寻址空间变大
|
||||
基本数据类型的长度也会有些变化(long ,longlong, ptr)
|
||||
|
||||
|
||||
iphone app为什么会被打回来,如何避免??
|
||||
1) 阅读文档
|
||||
2) 看别人被拒的原因,吸取教训
|
||||
|
||||
|
||||
iphone app为什么会被打回来,如何避免??
|
||||
1) 阅读文档
|
||||
2) 看别人被拒的原因,吸取教训
|
||||
|
||||
|
||||
为啥离开团队?
|
||||
在小团队里面工作,虽然比较有机会复杂整个项目,有很多的决策权,如项目框架选型,规范等
|
||||
“格局” “要求”
|
||||
当然,我也希望自己身边有一堆牛人,相互学习啦
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -222,6 +222,15 @@
|
||||
|
||||
|
||||
|
||||
|
||||
如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)
|
||||
|
||||
空间复杂度为O(1),不表示只有1个或少数几个空间,而是说一个常量空间,可以是几千,几万。。
|
||||
这里要求`待排序的数字在限定的范围内如【0,65535】`;这样我们可以使用hash sort,也就是分配一个hash[6535]的空间,初始化为0,遍历一遍,出现的数字就hash[k]++,这样再次遍历一次,就可以得到n个数的顺序了。
|
||||
|
||||
|
||||
|
||||
|
||||
###小结
|
||||
|
||||
|
||||
|
||||
@@ -121,8 +121,6 @@ void quicksort(int *a, int left, int right){
|
||||
quicksort(a,left,i-1);
|
||||
quicksort(a,i+1,right);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
+5
-7
@@ -29,24 +29,22 @@
|
||||
|
||||
|
||||
|
||||
### 堆和栈
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
### 链表
|
||||
### 堆和栈,链表
|
||||
|
||||
这是最基本数据结构,相对容易理解
|
||||
|
||||
|
||||
### 二叉树
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
### 图
|
||||
|
||||
|
||||
|
||||
|
||||
### 海量数据处理
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
|
||||
|
||||
|
||||
|
||||
把二元查找树转变成排序的双向链表
|
||||
|
||||
输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。
|
||||
|
||||
@@ -51,6 +51,10 @@ int factorial(n){
|
||||
#define min(a,b) ((a)>(b)?(a):(b))
|
||||
#define MIN(A,B) ({ __typeof__(A) __a = (A); __typeof__(B) __b = (B); __a < __b ? __a : __b; })
|
||||
|
||||
这里不能使用比较符号:
|
||||
|
||||
#define min(a,b) ((a)-(b) & (0x1<<31))?(a):(b)
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -213,6 +217,25 @@ int one_appear_count(int n);
|
||||
|
||||
|
||||
|
||||
两个圆相交,交点是A1,A2。现在过A1点做一直线与两个圆分别相交另外一点B1,B2。B1B2可以绕着A1点旋转。问在什么情况下,B1B2最长
|
||||
|
||||
|
||||
|
||||
|
||||
题目:输入四个点的坐标,求证四个点是不是一个矩形
|
||||
关键点:
|
||||
1.相邻两边斜率之积等于-1,
|
||||
2.矩形边与坐标系平行的情况下,斜率无穷大不能用积判断。
|
||||
3.输入四点可能不按顺序,需要对四点排序。
|
||||
|
||||
|
||||
矩阵式螺旋输出
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -28,6 +28,13 @@ A说不知道,B说不知道,C说不知道,然后A说知道了。
|
||||
|
||||
|
||||
|
||||
“十袋白色粉末,其中有一袋溶于水两分钟以后会变蓝,现在只有四个杯子,无限多的水,要求是在最短的时间内找出这袋特殊的粉末”
|
||||
|
||||
一二三四号粉末放第1个杯子,二三四号粉末分别放在第234个杯子里,五六七号粉末放到2号杯子里,六七号粉末分别放到34号杯子里,八九号粉末放到第3个杯子里,九十号粉末放到第4个杯子里,OK了”
|
||||
|
||||
|
||||
|
||||
|
||||
27.跳台阶问题
|
||||
题目:一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。
|
||||
求总共有多少总跳法,并分析算法的时间复杂度。
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
|
||||
|
||||
|
||||
系统有很多任务,任务之间有依赖,比如B依赖于A,则A执行完后B才能执行
|
||||
(1)不考虑系统并行性,设计一个函数(Task *Ptask,int Task_num)不考虑并行度,最快的方法完成所有任务。
|
||||
(2)考虑并行度,怎么设计
|
||||
typedef struct{
|
||||
int ID;
|
||||
int * child;
|
||||
int child_num;
|
||||
}Task;
|
||||
提供的函数:
|
||||
bool doTask(int taskID);无阻塞的运行一个任务;
|
||||
int waitTask(int timeout);返回运行完成的任务id,如果没有则返回-1;
|
||||
bool killTask(int taskID);杀死进程
|
||||
|
||||
|
||||
|
||||
设计一种内存管理算法。
|
||||
|
||||
|
||||
|
||||
|
||||
有不同的手机终端,如iphone,安卓,Symbian,不同的终端处理不一样,设计一种服务器和算法实现对不同的终端的处理。
|
||||
|
||||
|
||||
|
||||
A向B发邮件,B收到后读取并发送收到,但是中间可能丢失了该邮件,怎么设计一种最节省的方法,来处理丢失问题。
|
||||
|
||||
|
||||
|
||||
设计一种算法求出算法复杂度 。
|
||||
|
||||
|
||||
|
||||
|
||||
要求设计一个DNS的Cache结构,要求能够满足每秒5000以上的查询,满足IP数据的快速插入,查询的速度要快。
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
请编写实现malloc()内存分配函数功能一样的代码。
|
||||
|
||||
用C语言实现函数void * memmove(void *dest, const void *src, size_t n)。memmove
|
||||
函数的功能是拷贝src所指的内存内容前n个字节到dest所指的地址上。
|
||||
|
||||
分析:由于可以把任何类型的指针赋给void类型的指针,这个函数主要是实现各种数据类型的拷贝。
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user