首页 > 距离阿里最近的一次
头像
迷途的执念
发布于 2021-09-02 16:42
+ 关注

距离阿里最近的一次

longlong ago 做的阿里的正式批的笔试题了,不会做。
yesterday 阿里打电话约一面时间,说一面之前会有一个笔试环节,带好电脑。
Nowadays 约的今天下午三点,打来电话,先发了一个阿里内部的测评连接,两道笔试题,如下:
/*
 问题:启动a、b两个线程,由这两个线程打印出1到100共一百个数字。 
要求:
1. a线程打印1、3、5、7等奇数,b线程打印2、4、6、8等偶数。
2. 依次串行打印,即打印完1之后,再打印2,然后是3、4、5…直到100,全部打印完成后,进程能正常结束。
3. 标准时间:20分钟
*/
public class A implements Runable{
 
   private boolean isRun;
   private Object lock;
   private int num;
  
  public A(boolean isRun,Object lock,int num){
    this.isRun = isRun;
    this.lock = lock;
    this.num = num;
  }
  
  public void run(){
    synchronized(lock){
      while(num<=100){
       if(isRun){
          isRun = false; 
        }else{
          lock.waite();
        }
        System.out.println(num);
        num+=2;
       lock.notify();
      
      }
    }
  }
  
  public static void main(String args[]){
    Object lock = new Object();
    Thread t1 = new Thread(new A(true,lock,1));
    Thread t2 = new Thread(new A(false,lock,2));
    t2.start();
    t1.start();
    
  }

}
//编程实现:二分搜索算法
public class BinarySearch{
 public int binarySearch(int[] nums,int target){
       if(nums == null || nums.length == 0)
          return -1;
      int begin = 0;
       int end = nums.length-1;
       while(begin <= end){
          int mid = begin + (end-begin)/2;
           if(nums[mid] > target){
             end = mid;
            }else if(array[mid] < target){
              begin = mid + 1; 
            }else{
              return mid; 
            } 
        }
       return -1;
    }
}
不知道对不对,瞎做的。。。
然后就是在公屏上跟面试官交流,约了明天晚上七点的面试。
PS:阿里后端的小哥声音挺好听😂

全部评论

(0) 回帖
加载中...
话题 回帖