#软件开发2024笔面经# 单选5题: 1.高度为4的avl树有多少种类 2.8层汉诺塔次数 3.其他忘了多选3题: 1.有问题的double check单例代码,标出了几行代码,问你这几行需要注意什么,singleton变量没加volatile,第二个check没有互斥 (选项有内存可见性、指令重排、线程互斥、其他选项忘了),我感觉应该选内存可见性,线程互斥。 2.初始a,b,x,y都为0,线程1{a=1;x=b} 线程2{b=1;y=a},问你xy可能的结果(00,01,10,11),我考虑了指令重排,全选了[https://tech.meituan.com/2014/09/23/java-memory-reordering.html] 3.貌似是2017年408第8题(单选出成多选,选多了,赣)编程题(ACM模式):1. (英文题干)Neo准备给Alice一些糖果作为礼物,并把它们放在了n个盒子里,Neo认为Alice不想收到空盒子,所以现在每个盒子里的糖果数量大于1。但是Alice实际不介意有空盒子,她更喜欢所有的盒子里的糖果数量互质(coprime)。Alice的男朋友Tommy是Neo好哥们,打算帮他将盒子列的糖果数量调整为Alice喜欢的样子。但Tommy每秒只能从一个盒子里挪动一个糖果到相邻的盒子里。问Tommy需要至少多少秒才能完成。2.(中文题干)推箱子,给你一个大小为MxN仓库的,一个大小为mxn的箱子,箱子左上角的初始位置xy,给你仓库矩阵(1代表有东西,0代表没东西),将箱子推到仓库边缘就算完成,每次只能挪动一格,问至少需要多少次挪动。太菜了,两题编程完全不会