来未来 后端开发 秋招笔试

#软件开发笔面经#
1.从升序数组中找出两个数字,使得相加等于固定值,时间复杂度O(n),输出结果:是否找到,如果找到分别输出这两个数字。
思路分析:定义一个静态map,先遍历一遍数组存储所有数字的下标,再遍历一遍判断(sum-num[i]下表是否存在),存在则证明找得到两个数字的和满足sum,退出。
2.实现一个类 支持100个线程同时向个银行账户中存入一元钱
思路分析:
线程要实现并发存入,for循环创建100个线程,重写run方法实现存钱逻辑,存钱时要加悲观锁,不然会出现更新覆盖。
用计数器拦截,或者循环栅栏,保证100个线程全部执行完毕。
全部评论

相关推荐

思念SiN:你这里没有通过的主要原因应该是计算平均分数的时候,在你贴的代码的第23行: ```c b[i]=(sum-max-min)/(m-2); ``` 等式的右边实际上是两个`int`类型的变量在做除法,C语言里面得到的结果会是这个除法的整数部分,余数部分被舍弃了,也不会自动变成浮点数去做除法。所以虽然你使用了`b[i]`这个浮点数去接收结果,但是等式右边除法是先得到了一个整数,然后再被转换为浮点数再赋值给了`b[i]`。你可以按下面这样,在做除法之前,先进行类型转换,就能得到期望的结果: ```c b[i]=(float)(sum-max-min)/(float)(m-2); ```
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务