论坛首页 招聘求职论坛

淘宝的笔试题,大家讨论一下

浏览 31192 次
精华帖 (0) :: 良好帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-06-30  
如果这些题目大概可以描述对答案,可以给出解决方案,但写代码有点问题的话,应该算什么样的呢? 能拿到多少薪水呢?
0 请登录后投票
   发表时间:2009-07-01  
gugugu 写道
1. hashCode()方法好像是用来给compareTo用的,equals是比较compareTo也是比较,所以2个地方要一致了。要改一起改,免得使用者用错了。

2. 看来去淘宝真要认真复习一遍数据结构啊,忘得差不多了。

3. 这个应该就是传说中的map-reduce吧,把List分成2半,2半分成4半,直到分到合理的数(好比每份10万个),然后算,在和到一起。

4. 什么意思?一个类可以拥有返回float和double类型的方法?这样就是True呗。





不敢恭维~~
0 请登录后投票
   发表时间:2009-11-26  
看了大家这么回复,始终没有看见第3题的答案,于是自己写了一个,忘大侠来指点迷津。
利用多核CPU当然是要想到多线程处理了。
import java.util.ArrayList;
import java.util.List;

public class Count implements Runnable {
	private List<Integer> list;
	private  static int sum;
	public static ThreadGroup group = new ThreadGroup("线程组");//这是关键的地方,让所有启动的线程在同一个线程组中
	public Count(List<Integer> list) {
		this.list = list;
	}
	public static int getSum() {
		while (group.activeCount() != 0) {
			//等到线程组中所有线程都运算完毕再返回结果
		}
		return sum;
	}
	public static void main(String[] args) {
		List<Integer> list = new ArrayList<Integer>();
		 list.add(1);
		 list.add(1);
		 list.add(-12);
		 //模拟数据
		 //这里就不写怎么将一个大的list分成几个小的list了
		 //启动线程的数量又 list.size()/N 决定,N由自己决定
		 //这里只启动了4个线程
		 new Thread(Count.group, new Count(list)).start();
		 new Thread(Count.group, new Count(list)).start();
		 new Thread(Count.group, new Count(list)).start();
		 new Thread(Count.group, new Count(list)).start();
		 System.out.println(Count.getSum());
	}
	@Override
	public void run() {
			for (int i = 0; i < list.size(); i++) {
				sum = sum + list.get(i).intValue();						
			}
		}
}


其他的几个题,多看看书,基本都能理解了。
望大家指正。
0 请登录后投票
   发表时间:2009-12-05  
这面试有难度
0 请登录后投票
   发表时间:2009-12-26  
都不太懂,太底了点吧
0 请登录后投票
   发表时间:2009-12-27   最后修改:2009-12-27

1、见effective java.

2、数据结构。

3、google的map-reduce。

4、查帮助文档。

0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics