您的位置:首页 > 其它

interview collect

2015-12-05 10:28 148 查看
1. binary tree inorder traversal 不能用recursive写 (LC原题)
2. 比如有个数组F={1,3, 4, 5, 2, 0}, A=3, 那么F[A]=5, F[F[A]]=0, F[F[F[A]]]=1....这样下去求第N个数是多少. from: 1point3acres.com/bbs
3. first missing positive(LC原题)
4. 不用写代码,问得hashmap和hashcode的知识

[align=left]1.Round Robin[/align]
[align=left]一个处理器要处理一堆request,一次只能处理一条,每次执行一个任务最多执行时间q,接着执行等待着的下一个任务。若前一个任务没执行完则放到队尾,等待下一次执行[/align]
[align=left]假设只要有任务开始以后cpu是不会空闲的,也就是说cpu开始后如果空闲了就说明没有任务了,另外Robin Round最后返回值是float[/align]
[align=left] public static float waitingTimeRobin(int[] arrival,int[] run, int q)[/align]
[align=left] [/align]
[align=left]2.Rotate Matrix ([/align]
[align=left] 把一个m*n的矩阵旋转90度,给一个flag规定是向左转还是向右转[/align]
[align=left]. 1point3acres.com/bbs[/align]
[align=left]3.Binary search tree minimum sum from root to leaf[/align]
[align=left] 跟BST没啥关系,不要看到BST就以为是最左边的路径之和(左边路径可以很长,右边路径可以很短),用递归做很简单[/align]
[align=left] [/align]
[align=left]4.insert into cycle linked list[/align]
[align=left] 插入一个新的节点到一个sorted cycle linkedlist,返回新的节点。给的list节点不一定是最小节点[/align]
[align=left] [/align]
[align=left]5.Greatest Common Divisor[/align]
[align=left] 就是给一个数组找这些数的最大公约数[/align]
[align=left] [/align]
[align=left]6.Shorted job first[/align]
[align=left] 一个处理器要处理一堆request,一次只能处理一条,如果它有几个积压着的requests,它会先执行持续时间短的那个;对于持续时间相等的requests,先执行最早到达处理器的request。问平均每个request要等多久才能被处理。input:requestTimes[],每个request到达处理器的时间; durations[] 每个request要处理的持续时间。 两个数组是一一对应的,并已按requestTimes[] 从小到大排序过[/align]
[align=left] public double CalWaitingTime(int requestTimes[], int[] durations[]){}[/align]
[align=left] 用priorityqueue做,地里有一个两层循环的答案,没仔细看,做完round robin以后发现思路很相似。注意用priorityqueue写comparator的时候,要先判断两者的execute time,如果execute time相同,则返回arrival time之差,即先按执行时间排序,若执行时间相同则按到达的时间排。[/align]
[align=left] [/align]
[align=left]7.Valid Parenthesis[/align]
[align=left] 给你一个str,里面只有 '('和‘)’,让你数valid pairs一共有多少,如果不是valid就返回-1. (判断是不是valid的parenthesis string,不是的话返回-1,是的话返回valid pair个数,即String.length() / 2 )[/align]
[align=left] [/align]
[align=left]8.LRU Cache count miss[/align]
[align=left] 实现以下LRU Cache再判断啥时候miss就好了,返回miss数。建议看看用LinkedHashMap实现lru cache, 代码很简洁。[/align]
[align=left] [/align]
[align=left]9.Day chang(cell growth)[/align]
[align=left] int[] dayChange(int[] cells, int days), cells 数组,有8个元素,每天的变化情况是 当前位置 cell == (cell[i - 1] == cell[i + 1]) ? 0 : 1, 左右相等,当前位置为0, 不等为1, 默认 cells[0]左边 和 cells[cells.length - 1]右边的位置元素都是0, 求days天后的变化.[/align]
[align=left]-google 1point3acres[/align]
[align=left]10.Maze[/align]
[align=left] 给个array,其中只有一格是9,其他格子是0或1,0表示此路不通,1表示可以走,判断从(0,0) 点开始上下左右移动能否找到这个是9的格子[/align]
[align=left] [/align]
[align=left]11.subtree[/align]
[align=left] [/align]
[align=left]12.sametree[/align]
[align=left] 判断两棵树是否相同(结构和值)[/align]
[align=left].1point3acres缃�[/align]
[align=left]另外,1. 若是用Java,用到queue, list啥的记得前面手动import java.util.* 2.所有函数都是static的,所以自己写其他helper函数的时候记得加上static[/align]

OA1的coding是two sum pair
OA2的coding是Shortest Job First 和 循环链表插入元素
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: