q*******d 发帖数: 49 | 1 总共三轮
第一轮俩人technical
1. tweet has topics, find top 10 topics of tweets send in last 30 minutes
2. leetcode 积水问题
3. there are different kind of databases; given a query, system will tell
you which database you should connect(system gives you a string like "Oracle
" or "MySQL"). Design a class that could handle any query.
第二轮俩人technical
1. java questions
2. make car; given “bus” return object bus; given "truck" return object
truck...etc
3. many linked lists meet together. find the first node that all these
linked lists meet at
eg: 1-2-3-4-5 6-2-3-4-5 7-8-4-5 return 4
4. find kth node from the end of a linked list
5. 3*3*3 由小白立方体组成的大立方体,表面刷黑然后打散,求所有27个小立方体都
白色朝上的概率
6. given double a,b(both between 0 and 1), return integer A B so |A/B-a|
就是两个integer相除的结果与a的误差小于b
第三轮manager
问一个做的项目,很多如何改进的问题,最后问我如何测改程序速度/内存/CPU占用率
我第一轮的俩design都答得不好,tweet那题我把tweets分成多个部分多线程处理,要
得到结果时merge一下次数,面试官表示merge太慢但是我也没什么好办法;database那
题一开始没听懂,问了面试官好久
第二轮java问题有一个问我object传参时可能method会修改object,怎么保证object不
被修改。我只知道一个final关键字,但是貌似用不上?最后一题我先给了naive解法,
后来提示下给的更好的解
第三轮如何测程序CPU占用?我说了个方法但是感觉不太可行
以往听说最后都有hr面,我这次没有,不知道机会大不大? |
l*****e 发帖数: 453 | |
q*******d 发帖数: 49 | 3 是啊
【在 l*****e 的大作中提到】 : bless! : 是面的什么职位,fsd吗
|
l****3 发帖数: 17 | |
l*****e 发帖数: 453 | 5 database那个是啥意思,是要考虑不同sql语法的问题么,make car也没看懂,能解释
下吗?
【在 q*******d 的大作中提到】 : 是啊
|
f*****e 发帖数: 2992 | 6 是不是用java proxy动态create classes?
【在 l*****e 的大作中提到】 : database那个是啥意思,是要考虑不同sql语法的问题么,make car也没看懂,能解释 : 下吗?
|
q*******d 发帖数: 49 | 7 我一开始也没有理解,问了很久。其实他就要求写个interface和继承类,这样所有
database的连接都可以用同一个method名。
比如建一个abstract class connection{
abstract data connect(query);
}
class oracleConnect extends connection...
class MysqlConnect extends connection...
connection[] c=new connection[2];
c[0]=new oracleConnect();
c[1]=new MysqlConnect();
HashMap hm={oracle,0},{MySQL,1}
data=c[hm.get(database name)].connect(query);
那个make car跟这个一样就换了个说法
【在 l*****e 的大作中提到】 : database那个是啥意思,是要考虑不同sql语法的问题么,make car也没看懂,能解释 : 下吗?
|
q*******d 发帖数: 49 | 8 没用过啊泪奔
【在 f*****e 的大作中提到】 : 是不是用java proxy动态create classes?
|
q*******d 发帖数: 49 | 9 谢谢~
【在 l****3 的大作中提到】 : 祝福
|
l*****e 发帖数: 453 | 10 哦,了解了,谢谢,话说为啥问java问题,是简历里写了吗,bb不是主要用c++么
【在 q*******d 的大作中提到】 : 我一开始也没有理解,问了很久。其实他就要求写个interface和继承类,这样所有 : database的连接都可以用同一个method名。 : 比如建一个abstract class connection{ : abstract data connect(query); : } : class oracleConnect extends connection... : class MysqlConnect extends connection... : connection[] c=new connection[2]; : c[0]=new oracleConnect(); : c[1]=new MysqlConnect();
|
|
|
m*******4 发帖数: 34 | 11 Bless lz.Java的那个问题,我觉得可以clone这个object,这样内部修改就没影响了。 |
q*******d 发帖数: 49 | 12 谢谢啊,好像是这样
【在 m*******4 的大作中提到】 : Bless lz.Java的那个问题,我觉得可以clone这个object,这样内部修改就没影响了。
|
q*******d 发帖数: 49 | 13 我跟他说我3年没用c++了,最近都用java,所以。。
【在 l*****e 的大作中提到】 : 哦,了解了,谢谢,话说为啥问java问题,是简历里写了吗,bb不是主要用c++么
|
u*****o 发帖数: 1224 | 14 bb也变得这么难了吗。。。lz你是fresh还是有经验的? |
u*****o 发帖数: 1224 | 15 这两天纽约不是寒流了吗。。。我看以前的面经说,见到manager就有起码50%的机会耶
。。。应该问题不大!
given double a,b return integer A B so |A/B-a|
这题啥意思?考点在哪里?
简化一下方程不就是 a-b < A/B < a+b, 在b>0的情况下就应该成立吧? |
q*******d 发帖数: 49 | 16 fresh..
不好意思掉了条件,两个double都是大于0小于等于1的,已在原文中修改
【在 u*****o 的大作中提到】 : 这两天纽约不是寒流了吗。。。我看以前的面经说,见到manager就有起码50%的机会耶 : 。。。应该问题不大! : given double a,b return integer A B so |A/B-a|: 这题啥意思?考点在哪里? : 简化一下方程不就是 a-b < A/B < a+b, 在b>0的情况下就应该成立吧?
|
N********g 发帖数: 132 | 17 3. there are different kind of databases; given a query, system will tell
you which database you should connect(system gives you a string like "Oracle
" or "MySQL"). Design a class that could handle any query.
这题考的是separation of interface and implementation,code against interface
,not against implementation,如果做过JDBC开发,立马就知道什么意思。
好比你写了一些DAO(Database access object),就是用来把数据从数据库里面读出
来,然后交给中间层处理的工具类,但是你们开发组在不久的将来,打算把数据库由
oracle转成mysql。如果这些DAO里面的具体选取数据的方法,都跟oracle数据库相关,
都跟oralce对应的java class相关,那转数据库的时候,你就要哭了——到处都要改,
全部改成跟mysql对应的那些class和方法。
解决办法就是把要用到的数据库对象都定义成interface,比如JDBC里面的
DriverManager,DataSource,Connection,Statement,PreparedStatement,
ResultSet都是interface。在DAO里面写的时候,完全只对这些interface操作。每个数
据库都会有自己的一套implementation,切换的时候不用改DAO里面的东西。
比如这个DAO里面的method:
public void connectToAndQueryDatabase(String username, String password) {
Connection con = DriverManager.getConnection(
"jdbc:myDriver:myDatabase",
username,
password);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");
while (rs.next()) {
int x = rs.getInt("a");
String s = rs.getString("b");
float f = rs.getFloat("c");
}
}
如果这么写,就安全了——跟具体的数据库没关系了,你都不关心具体的实现类是神马
,反正都是一样的接口(interface)。当然,你的sql语句得是符合一般的sql标准的
,在哪个数据库上都能跑的,不能是含有某一种数据库的特殊语法的。
艾玛,中英混杂写得累死了。
祝您好运! |
q*******d 发帖数: 49 | 18 嗯您说的有道理,我实习的时候公司也是这么用的,只不过我没有写过DAO,理解不深
刻关键时候没想起来。。
Oracle
interface
【在 N********g 的大作中提到】 : 3. there are different kind of databases; given a query, system will tell : you which database you should connect(system gives you a string like "Oracle : " or "MySQL"). Design a class that could handle any query. : 这题考的是separation of interface and implementation,code against interface : ,not against implementation,如果做过JDBC开发,立马就知道什么意思。 : 好比你写了一些DAO(Database access object),就是用来把数据从数据库里面读出 : 来,然后交给中间层处理的工具类,但是你们开发组在不久的将来,打算把数据库由 : oracle转成mysql。如果这些DAO里面的具体选取数据的方法,都跟oracle数据库相关, : 都跟oralce对应的java class相关,那转数据库的时候,你就要哭了——到处都要改, : 全部改成跟mysql对应的那些class和方法。
|
N********g 发帖数: 132 | 19 这个也算是一般规律,要和具体实现解耦,针对接口编程,才能灵活地适应变化。大家
都是做着做着就懂了。
LinkedList找meet的那题怎么做,俺还没想出来……
【在 q*******d 的大作中提到】 : 嗯您说的有道理,我实习的时候公司也是这么用的,只不过我没有写过DAO,理解不深 : 刻关键时候没想起来。。 : : Oracle : interface
|
q*******d 发帖数: 49 | 20 搞个hashmap,前n-1个链表挨个遍历一遍,用hashmap统计每个node出现
次数,最后一个链表遍历的时候每个node都在hashmap找value,如果value==n-1,那么
这个点就找到了
【在 N********g 的大作中提到】 : 这个也算是一般规律,要和具体实现解耦,针对接口编程,才能灵活地适应变化。大家 : 都是做着做着就懂了。 : LinkedList找meet的那题怎么做,俺还没想出来……
|
|
|
N********g 发帖数: 132 | 21 这个办法不一定能找到啊,比如这个情况:
1-2-3-4-5
6-2-3-4-5
3-7-8-4-5
用前两个做成hashmap,再遍历最后一个链表,结果3是第一个符合value==n-1条件的。
可见条件必要但不充分。
这样行不行:先把所有的链表都reverse一下,然后从头开始一起遍历,找到第一个不
一样的node,那么上一个node就是meet的地方。
【在 q*******d 的大作中提到】 : 搞个hashmap,前n-1个链表挨个遍历一遍,用hashmap统计每个node出现 : 次数,最后一个链表遍历的时候每个node都在hashmap找value,如果value==n-1,那么 : 这个点就找到了
|
l*****e 发帖数: 453 | 22 如果每个节点只有一个next指针,3后面要么是4,要么是7吧,这个例子不太对
【在 N********g 的大作中提到】 : 这个办法不一定能找到啊,比如这个情况: : 1-2-3-4-5 : 6-2-3-4-5 : 3-7-8-4-5 : 用前两个做成hashmap,再遍历最后一个链表,结果3是第一个符合value==n-1条件的。 : 可见条件必要但不充分。 : 这样行不行:先把所有的链表都reverse一下,然后从头开始一起遍历,找到第一个不 : 一样的node,那么上一个node就是meet的地方。
|
R*******d 发帖数: 13640 | |
f*******w 发帖数: 1243 | |
l*****n 发帖数: 52 | |
h****u 发帖数: 71 | |
m******s 发帖数: 1469 | 27 Bless
Oracle
【在 q*******d 的大作中提到】 : 总共三轮 : 第一轮俩人technical : 1. tweet has topics, find top 10 topics of tweets send in last 30 minutes : 2. leetcode 积水问题 : 3. there are different kind of databases; given a query, system will tell : you which database you should connect(system gives you a string like "Oracle : " or "MySQL"). Design a class that could handle any query. : 第二轮俩人technical : 1. java questions : 2. make car; given “bus” return object bus; given "truck" return object
|
q*******d 发帖数: 49 | 28 总共三轮
第一轮俩人technical
1. tweet has topics, find top 10 topics of tweets send in last 30 minutes
2. leetcode 积水问题
3. there are different kind of databases; given a query, system will tell
you which database you should connect(system gives you a string like "Oracle
" or "MySQL"). Design a class that could handle any query.
第二轮俩人technical
1. java questions
2. make car; given “bus” return object bus; given "truck" return object
truck...etc
3. many linked lists meet together. find the first node that all these
linked lists meet at
eg: 1-2-3-4-5 6-2-3-4-5 7-8-4-5 return 4
4. find kth node from the end of a linked list
5. 3*3*3 由小白立方体组成的大立方体,表面刷黑然后打散,求所有27个小立方体都
白色朝上的概率
6. given double a,b(both between 0 and 1), return integer A B so |A/B-a|
就是两个integer相除的结果与a的误差小于b
第三轮manager
问一个做的项目,很多如何改进的问题,最后问我如何测改程序速度/内存/CPU占用率
我第一轮的俩design都答得不好,tweet那题我把tweets分成多个部分多线程处理,要
得到结果时merge一下次数,面试官表示merge太慢但是我也没什么好办法;database那
题一开始没听懂,问了面试官好久
第二轮java问题有一个问我object传参时可能method会修改object,怎么保证object不
被修改。我只知道一个final关键字,但是貌似用不上?最后一题我先给了naive解法,
后来提示下给的更好的解
第三轮如何测程序CPU占用?我说了个方法但是感觉不太可行
以往听说最后都有hr面,我这次没有,不知道机会大不大? |
l*****e 发帖数: 453 | |
q*******d 发帖数: 49 | 30 是啊
【在 l*****e 的大作中提到】 : bless! : 是面的什么职位,fsd吗
|
|
|
l****3 发帖数: 17 | |
l*****e 发帖数: 453 | 32 database那个是啥意思,是要考虑不同sql语法的问题么,make car也没看懂,能解释
下吗?
【在 q*******d 的大作中提到】 : 是啊
|
f*****e 发帖数: 2992 | 33 是不是用java proxy动态create classes?
【在 l*****e 的大作中提到】 : database那个是啥意思,是要考虑不同sql语法的问题么,make car也没看懂,能解释 : 下吗?
|
q*******d 发帖数: 49 | 34 我一开始也没有理解,问了很久。其实他就要求写个interface和继承类,这样所有
database的连接都可以用同一个method名。
比如建一个abstract class connection{
abstract data connect(query);
}
class oracleConnect extends connection...
class MysqlConnect extends connection...
connection[] c=new connection[2];
c[0]=new oracleConnect();
c[1]=new MysqlConnect();
HashMap hm={oracle,0},{MySQL,1}
data=c[hm.get(database name)].connect(query);
那个make car跟这个一样就换了个说法
【在 l*****e 的大作中提到】 : database那个是啥意思,是要考虑不同sql语法的问题么,make car也没看懂,能解释 : 下吗?
|
q*******d 发帖数: 49 | 35 没用过啊泪奔
【在 f*****e 的大作中提到】 : 是不是用java proxy动态create classes?
|
q*******d 发帖数: 49 | 36 谢谢~
【在 l****3 的大作中提到】 : 祝福
|
l*****e 发帖数: 453 | 37 哦,了解了,谢谢,话说为啥问java问题,是简历里写了吗,bb不是主要用c++么
【在 q*******d 的大作中提到】 : 我一开始也没有理解,问了很久。其实他就要求写个interface和继承类,这样所有 : database的连接都可以用同一个method名。 : 比如建一个abstract class connection{ : abstract data connect(query); : } : class oracleConnect extends connection... : class MysqlConnect extends connection... : connection[] c=new connection[2]; : c[0]=new oracleConnect(); : c[1]=new MysqlConnect();
|
m*******4 发帖数: 34 | 38 Bless lz.Java的那个问题,我觉得可以clone这个object,这样内部修改就没影响了。 |
q*******d 发帖数: 49 | 39 谢谢啊,好像是这样
【在 m*******4 的大作中提到】 : Bless lz.Java的那个问题,我觉得可以clone这个object,这样内部修改就没影响了。
|
q*******d 发帖数: 49 | 40 我跟他说我3年没用c++了,最近都用java,所以。。
【在 l*****e 的大作中提到】 : 哦,了解了,谢谢,话说为啥问java问题,是简历里写了吗,bb不是主要用c++么
|
|
|
u*****o 发帖数: 1224 | 41 bb也变得这么难了吗。。。lz你是fresh还是有经验的? |
u*****o 发帖数: 1224 | 42 这两天纽约不是寒流了吗。。。我看以前的面经说,见到manager就有起码50%的机会耶
。。。应该问题不大!
given double a,b return integer A B so |A/B-a|
这题啥意思?考点在哪里?
简化一下方程不就是 a-b < A/B < a+b, 在b>0的情况下就应该成立吧? |
q*******d 发帖数: 49 | 43 fresh..
不好意思掉了条件,两个double都是大于0小于等于1的,已在原文中修改
【在 u*****o 的大作中提到】 : 这两天纽约不是寒流了吗。。。我看以前的面经说,见到manager就有起码50%的机会耶 : 。。。应该问题不大! : given double a,b return integer A B so |A/B-a|: 这题啥意思?考点在哪里? : 简化一下方程不就是 a-b < A/B < a+b, 在b>0的情况下就应该成立吧?
|
N********g 发帖数: 132 | 44 3. there are different kind of databases; given a query, system will tell
you which database you should connect(system gives you a string like "Oracle
" or "MySQL"). Design a class that could handle any query.
这题考的是separation of interface and implementation,code against interface
,not against implementation,如果做过JDBC开发,立马就知道什么意思。
好比你写了一些DAO(Database access object),就是用来把数据从数据库里面读出
来,然后交给中间层处理的工具类,但是你们开发组在不久的将来,打算把数据库由
oracle转成mysql。如果这些DAO里面的具体选取数据的方法,都跟oracle数据库相关,
都跟oralce对应的java class相关,那转数据库的时候,你就要哭了——到处都要改,
全部改成跟mysql对应的那些class和方法。
解决办法就是把要用到的数据库对象都定义成interface,比如JDBC里面的
DriverManager,DataSource,Connection,Statement,PreparedStatement,
ResultSet都是interface。在DAO里面写的时候,完全只对这些interface操作。每个数
据库都会有自己的一套implementation,切换的时候不用改DAO里面的东西。
比如这个DAO里面的method:
public void connectToAndQueryDatabase(String username, String password) {
Connection con = DriverManager.getConnection(
"jdbc:myDriver:myDatabase",
username,
password);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");
while (rs.next()) {
int x = rs.getInt("a");
String s = rs.getString("b");
float f = rs.getFloat("c");
}
}
如果这么写,就安全了——跟具体的数据库没关系了,你都不关心具体的实现类是神马
,反正都是一样的接口(interface)。当然,你的sql语句得是符合一般的sql标准的
,在哪个数据库上都能跑的,不能是含有某一种数据库的特殊语法的。
艾玛,中英混杂写得累死了。
祝您好运! |
q*******d 发帖数: 49 | 45 嗯您说的有道理,我实习的时候公司也是这么用的,只不过我没有写过DAO,理解不深
刻关键时候没想起来。。
Oracle
interface
【在 N********g 的大作中提到】 : 3. there are different kind of databases; given a query, system will tell : you which database you should connect(system gives you a string like "Oracle : " or "MySQL"). Design a class that could handle any query. : 这题考的是separation of interface and implementation,code against interface : ,not against implementation,如果做过JDBC开发,立马就知道什么意思。 : 好比你写了一些DAO(Database access object),就是用来把数据从数据库里面读出 : 来,然后交给中间层处理的工具类,但是你们开发组在不久的将来,打算把数据库由 : oracle转成mysql。如果这些DAO里面的具体选取数据的方法,都跟oracle数据库相关, : 都跟oralce对应的java class相关,那转数据库的时候,你就要哭了——到处都要改, : 全部改成跟mysql对应的那些class和方法。
|
N********g 发帖数: 132 | 46 这个也算是一般规律,要和具体实现解耦,针对接口编程,才能灵活地适应变化。大家
都是做着做着就懂了。
LinkedList找meet的那题怎么做,俺还没想出来……
【在 q*******d 的大作中提到】 : 嗯您说的有道理,我实习的时候公司也是这么用的,只不过我没有写过DAO,理解不深 : 刻关键时候没想起来。。 : : Oracle : interface
|
q*******d 发帖数: 49 | 47 搞个hashmap,前n-1个链表挨个遍历一遍,用hashmap统计每个node出现
次数,最后一个链表遍历的时候每个node都在hashmap找value,如果value==n-1,那么
这个点就找到了
【在 N********g 的大作中提到】 : 这个也算是一般规律,要和具体实现解耦,针对接口编程,才能灵活地适应变化。大家 : 都是做着做着就懂了。 : LinkedList找meet的那题怎么做,俺还没想出来……
|
N********g 发帖数: 132 | 48 这个办法不一定能找到啊,比如这个情况:
1-2-3-4-5
6-2-3-4-5
3-7-8-4-5
用前两个做成hashmap,再遍历最后一个链表,结果3是第一个符合value==n-1条件的。
可见条件必要但不充分。
这样行不行:先把所有的链表都reverse一下,然后从头开始一起遍历,找到第一个不
一样的node,那么上一个node就是meet的地方。
【在 q*******d 的大作中提到】 : 搞个hashmap,前n-1个链表挨个遍历一遍,用hashmap统计每个node出现 : 次数,最后一个链表遍历的时候每个node都在hashmap找value,如果value==n-1,那么 : 这个点就找到了
|
l*****e 发帖数: 453 | 49 如果每个节点只有一个next指针,3后面要么是4,要么是7吧,这个例子不太对
【在 N********g 的大作中提到】 : 这个办法不一定能找到啊,比如这个情况: : 1-2-3-4-5 : 6-2-3-4-5 : 3-7-8-4-5 : 用前两个做成hashmap,再遍历最后一个链表,结果3是第一个符合value==n-1条件的。 : 可见条件必要但不充分。 : 这样行不行:先把所有的链表都reverse一下,然后从头开始一起遍历,找到第一个不 : 一样的node,那么上一个node就是meet的地方。
|
R*******d 发帖数: 13640 | |
|
|
f*******w 发帖数: 1243 | |
l*****n 发帖数: 52 | |
h****u 发帖数: 71 | |
m******s 发帖数: 1469 | 54 Bless
Oracle
【在 q*******d 的大作中提到】 : 总共三轮 : 第一轮俩人technical : 1. tweet has topics, find top 10 topics of tweets send in last 30 minutes : 2. leetcode 积水问题 : 3. there are different kind of databases; given a query, system will tell : you which database you should connect(system gives you a string like "Oracle : " or "MySQL"). Design a class that could handle any query. : 第二轮俩人technical : 1. java questions : 2. make car; given “bus” return object bus; given "truck" return object
|
l**********g 发帖数: 16 | 55 6. given double a,b(both between 0 and 1), return integer A B so |A/B-a|
就是两个integer相除的结果与a的误差小于b
这题的思路是什么? |
s******d 发帖数: 424 | |
s*******a 发帖数: 501 | |
b******g 发帖数: 23 | |
l******n 发帖数: 577 | 59 找两个整数AB是说只要找出一对就行么?如果只要找出一对:
a-b
那么先确定一个B的值,然后根据这个B的值去找A的值,B的值从1开始尝试。A满足条件
是mod(B(a+b))>B(a-b),A的值就是mod(B(a+b))其中要注意如果B(a+b)是整数的话,那
么条件就是B(a+b)-1>B(a-b),A的值就是B(a+b)-1。
不知道是不是这么个意思,请大牛赐教。 |