阅读 11566 次
发表时间:2011-04-19
许文强 写道
william_ai 写道
发哥,要是只看薪水,那就别找local的职位。

发哥指我吗?
我能力有限,半路出家,薪水就不做梦了,老实的存几年钱去创业吧。

周润发的成名角色许文强,亏你想得出来用这个名字,O(∩_∩)O哈哈~
自己创业的话,也建起赚老外的钱,欧美系的钱还是比较好赚的。
发表时间:2011-04-19
背过JDK源码。。。。估计就会了。。
发表时间:2011-04-19
第二题照搬书上的,有啥难的。
有点要求的公司,肯定会把题目稍微改一下。。。。
比如三堆或到N堆的。。。
发表时间:2011-04-19
= =!表示从来没笔试过...
发表时间:2011-04-19
cttnbcj 写道
第二题照搬书上的,有啥难的。
有点要求的公司,肯定会把题目稍微改一下。。。。
比如三堆或到N堆的。。。

对你来不难,对我这样的就难了。什么书上的,介绍下
发表时间:2011-04-19
许文强 写道
cttnbcj 写道
第二题照搬书上的,有啥难的。
有点要求的公司,肯定会把题目稍微改一下。。。。
比如三堆或到N堆的。。。

对你来不难,对我这样的就难了。什么书上的,介绍下

组合数学上方面的书基本全部都有介绍原理。神马NIM取子、巴什博奕、威佐夫博奕。。。。一坨坨的。。。。基本看过就忘,忘了看一边就记住了,又马上忘。。。。。现实中基本不会去搞。。。
发表时间:2011-04-20

LZ第一题还是有比较直观的解法的:

public class HLBitExchanger {

	public static int exchange(int i) {
		int j = 0;
		for (int n = 0; n < 32; n++) {
			j = j << 1;  //空出j的最低位
			j = j | i & 1;  //把i的最低位保存到j的最低位
			i = i >> 1;  //移出i的最低位
		}
		return j;
	}

	public static String fmtBinaryStr(int i) {
		String str = Integer.toBinaryString(i);
		StringBuilder fmtStr = new StringBuilder(32);
		for (int n = 0; n < 32 - str.length(); n++)
			fmtStr.append("0");
		return fmtStr.append(str).toString();
	}

	public static void main(String[] args) {
		System.out.println(HLBitExchanger.fmtBinaryStr(8888));
		System.out.println(HLBitExchanger.fmtBinaryStr(HLBitExchanger.exchange(8888)));
	}
}

00000000000000000010001010111000
00011101010001000000000000000000

PS: 不用中间变量的话,是有点费解的

发表时间:2011-04-20
我想问一下楼主,这两题是在纸上考呢,还是上机考?
发表时间:2011-04-20
public class Test {
	
	public static int reverse(int num){
		int result = 0;
		int one = 1;
		int mask = 0;
		for(int i=0; i<32; ++i){
			mask = one<<i;
			if((num & mask)==mask)
				result |= one<<(31-i);
		}
		return result;
	}

}

有没有人出8000请我?
发表时间:2011-04-20
我觉得第二题有必胜的办法
两堆相等就不说了
如果不相等 要看少的那一方是奇数个还是偶数个
如果是偶数个并且相差大于一个的话 那么先手胜 等于一个的话 后手胜
如果是奇数个并且相差大于一个的话 那么后手胜 等于一个的话 先手胜
这个结果对吗
Global site tag (gtag.js) - Google Analytics