三分钟解决手撕某上市公司笔试题

今天去参加了一个某个上市公司的笔试,下面的这些题目都是我笔试过后自己回想起来的,现在看看也没觉得有多难。不多说了

甲乙丙丁戊5人各借一本小说,约定读完后相互交换。这5本书的厚度和他们的阅读速度差不多,因此5人总是同时换书。经过数次交换后,5人每个人都读完了这5本书。已知:
甲最后读的是乙读的第二本书
丙最后读的是乙读的第四本书
丙读的第二本书甲在一开始就读了
丁最后读的数是丙读的第三本书
乙读的第四本书是戊读的第三本书
丁第三次读的书丙一开始读的那本书

那么丁第二次读的书是谁先读的?

丁第二次读的书是戊先读的

1、先设定甲乙丙丁戊第一次读的依次是A,B,C,D、E;
2、根据3丙读的第二本书甲在一开始就读了和6丁第三次读的书是丙一开始读的那本书得知(丙,2)=A (丁,3)=C

3、根据“2丙最后读的书是乙读的第四本书”和“5乙读的第四本书是戊读的第三本书”得知(乙,4)=(丙,5)=(戊,3),同时排除了他第1次读的BCE剩下的A,D可选,而(丙,2)=A 即(乙,4)=(丙,5)=(戊,3)=D

4、根据“1甲最后读的乙读的第二本书”得(甲,5)=(乙,2)=C/E ;假设为E,则(丁,2)只能是B,根据“4 丁最后读的书是丙读的第三本书”得(丙,3)=(丁,5),可推翻此假设(具体填图即明白),则(甲,5)=(乙,2)=E

在这里插入图片描述

sleep()和wait()的区别

1、sleep,wait 这两个方法来自不同的类分别是Thread和Object
2、最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。
3、wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用(使用范围)
4、sleep必须捕获异常,而wait,notify和notifyAll不需要捕获异常
5、sleep是Thread类的静态方法。sleep的作用是让线程休眠制定的时间,在时间到达时恢复,也就是说sleep将在接到时间到达事件事恢复线程执行。wait是Object的方法,也就是说可以对任意一个对象调用wait方法,调用wait方法将会将调用者的线程挂起,直到其他线程调用同一个对象的notify方法才会重新激活调用者。

写冒泡排序实现:


```java
public static void bubbleSort(int []arr) {
 
        for(int i =1;i<arr.length;i++) { 
            for(int j=0;j<arr.length-i;j++) {
                if(arr[j]>arr[j+1]) {
                    int temp = arr[j];
                     
                    arr[j]=arr[j+1];
                     
                    arr[j+1]=temp;
            }
            }    
        }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值