8.17美团算法笔试 极差思路

#美团求职进展汇总#
前三题A了,第四题暴力枚举过了70%,第五题放了
第一题送分
第二题最大公约数,这对学数学尤其学过数论的来说就比较简单了,比较坑的是他的测试用例给错了,57明明不是素数。想让最大公约数是素数那就找他的第一个素因子就行了,如果这个数本身是素数那就是他本身。

第三题极差,其实只有两种情况,甚至是只有一种情况,设medium=sum//n:
1.数组的和能被数组长度(即一共多少个数)整除,即sum%n==0:这时候极差最终会是0,那就算把每个数变到那个平均数的操作数就可以了,然后再把操作数除以2就是操作数(因为每次操作是一个+1一个-1)
2:数组的和不能被数组长度整除,设m=sum%n,这时候极差最小是1,也就是最终状态是有m个数是medium+1,剩下n-m个数是medium。这时候把数组拍个序,对前n-m个数算和medium小了多少(要+1多少次),后m个数算比medium大了多少(要-1多少次),次数加一起除个2就行了。
为什么说其实只有一种情况,因为第一种是第二种里m=0的情况
全部评论
好多算法工程师
1 回复 分享
发布于 2024-08-19 21:10 黑龙江
算法太卷了
点赞 回复 分享
发布于 2024-08-23 16:40 黑龙江
m
点赞 回复 分享
发布于 2024-08-20 08:19 广东
m
点赞 回复 分享
发布于 2024-08-19 17:15 浙江
m
点赞 回复 分享
发布于 2024-08-19 14:26 江西
m
点赞 回复 分享
发布于 2024-08-19 12:57 广东
m
点赞 回复 分享
发布于 2024-08-18 23:42 浙江

相关推荐

06-09 13:59
已编辑
University of California Irvine C++
经历了人生中最恐怖的拷打,jd上看这是个做分布式存储的岗,但是怎么一点分布式不问啊,我白看了两天的raft算法1. 自我介绍2. 说下c++17和20的特性3. 说下内存泄漏和悬垂指针4. 说下进程和线程的区别,再说下协程5. 说下const和constexpr6. 一个函数中有 uint 和 int 两个变量,他们进行加减操作会有什么问题吗,如果说左值是double或者float,他们会进行类型转换吗7. 一个类的成员如果没有初始化会怎么样,对于基础类型,自定义类,static修饰的变量都说一下8. 为什么NUMA要绑定线程到节点,两个不同节点的线程如果要传输一个数据怎么办,会不会造成缓存miss9. 说一下线程池的设计10. 为什么项目定时器要用红黑树呢,有没有O(1)复杂度的数据结构,其他实现有哪些,红黑树和堆排序的区别(不会11. 讲一下数组和链表的区别,遍历的话哪个更快12. 双缓冲区的日志库是怎么做的,如果一个线程还没来得及将内容写到磁盘就要交换缓冲区了怎么办,另外其他线程怎么把日志同步给日志库的线程13. 讲一下io uring,说一下io uring中的提交函数14. 线程之间可以怎么同步/传输数据,如果要共享数据呢15. 左值和右值16. c++如果函数参数不确定可以怎么写,只知道用template的…17. 动态规划和分治算法的区别18. 说一下 NP 和 P 问题算法一个长度为100的int数组,如果把每 10bit 看作一个数字,那么怎么得到第 n 个数字比如一个 4,二进制就是 0100,因为int是32位,所以在 0100 前面还有28个0,将每10位看作一个数算法没写出来,思路好像也不对,感觉底裤都被扒掉了,最后也没有反问环节就耻辱下播了--更新,答成这样都给我进二面了?
查看36道真题和解析
点赞 评论 收藏
分享
评论
3
6
分享

创作者周榜

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