`
liuguxing
  • 浏览: 92565 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

淘宝笔试题

    博客分类:
  • JAVA
阅读更多
给定一个整数,可以有三种操作:除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();
}
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics