淘宝笔试题

给定一个整数,可以有三种操作:除2,加1和减1。怎样能在最少的步骤里把这个数减小到1。
先把给定的整数转成二进制,如果未位是0。那么直接把它去掉,这就是十进制里的除2。如果未位是1,就从后面开始判断有几个连续的1,如果1的连续个数超过1,那么就加1,否则减1,这样做的目的是尽可能地多出现些0。

程序代码如下:

public class DivNumber {

public void divNumber(int num) {
int bnum = Integer.parseInt(Integer.toBinaryString(num));
System.out.println("bnum=" + num);
while (bnum != 1) {
if (bnum % 2 == 0) {
bnum /= 10;
num /= 2;
System.out.println("n/2 " + num);
} else {
String str = Integer.valueOf(bnum).toString();
int count = 0;
for (int i = str.length() - 1; i >= 0; i--) {
if (str.charAt(i) != '0') {
count++;
} else {
break;
}
}
if (count > 1) {
bnum = Integer.parseInt(Integer.toBinaryString((Integer
.parseInt(bnum + "", 2)) + 1));
System.out.println("n++ " + ++num);
} else {
bnum--;
System.out.println("n-- " + --num);
}
}
}
}

public static void main(String[] args) {
new DivNumber().divNumber(105);
}
}

数据库题大概是说100台服务器的机群,有20个接口可以对它们进行访问,要计算每分钟的平均访问量,并把数据存到数据库。还说明了,每秒的访问量都是上千万次。
问题有4个:第1个是画出系统的概要设计,第2个是设计表结构并说明用途,第3个是怎么把数据存到数据库,第4个好像是如果视图查询速度变慢,可能是什么原因,用什么方法去定位哪出问题

第二部分是专业部分 java方面

就几个改错题,考了MAP是否内部排序,子类与父类初始化顺序,还有几个简单的就不说了

Map内部排序的题目还记得些,问输出是“123”,还是“321”,还是不确定。答案是不确定,Map内部使用Hash进行排序,具体Map怎么排序还不太明确

public class TestMap {

private Map<String, String> map = new HashMap<String, String>();

public void testMap() {
map.put(System.currentTimeMillis() + "a", "1");
map.put(System.currentTimeMillis() + "b", "2");
map.put(System.currentTimeMillis() + "c", "3");
for (Entry en : map.entrySet()) {
System.out.println(en.getValue());
}
}

public static void main(String[] args) {
new TestMap().testMap();
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值