您的位置:首页 > 其它

滴滴

2016-04-27 14:01 127 查看

Java基本

两个线程A,B,如何控制线程执行顺序。

要求先执行A,再执行B

应该是使用join:

Thread t1 = new Thread(new Runnable() {

@Override
public void run() {
System.out.println("t1");
}
});
Thread t2 = new Thread(new Runnable() {

@Override
public void run() {
try {
//引用t1线程,等待t1线程执行完
t1.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("t2");
}
});
Thread t3 = new Thread(new Runnable() {

@Override
public void run() {
try {
//引用t2线程,等待t2线程执行完
t2.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("t3");
}
});
t3.start();
t2.start();
t1.start();


算法

数据结构

二叉树中序遍历,二叉树最近公共父节点

判断是否是二叉平衡树(这个我坑了,除了判断左右子树的深度之外,还要判断左右子树是否平衡)

数据库

数据库问的很多:

比如:

form1和form2两张结构一样但是数据不一样的表,找出form1中有,而form2中没有的:

我一开始说用not in,他说太卡

后来我说用左连接,他说行

这个还是需要上hive做

给出员工信息表:部门Id,员工Id,工资

employee(dep_id, user_id,bonus)


现在要求找出按部门分,每个部门工资前五的员工(这个没写出来啊):

第一步:找出一张临时表,这张表里是员工Id,员工在这个部门的排行:

user_id,rankup


需要这么来获取这张表:

select a.user_id, count(1) as rankup from
Employee a, Employee b
where a.dep_id = b.dep_id and a.bonus < b.bonus
group by a.user_id


第二步:

把这张表和原来的employee表做关联(id关联),找出rankup小于5的:

select
e.user_id, e.dep_id, e.bonus
from
Employee e,
(
select a.user_id, count(1) as rankup from Employee a, Employee b where a.dep_id = b.dep_id and a.bonus < b.bonus group by a.user_id
) r
where e.user_id = r.user_id and r.rankup < 5


这个题需要在mysql上试一下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: