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 黑龙江
m
点赞 回复 分享
发布于 2024-08-18 23:42 浙江
m
点赞 回复 分享
发布于 2024-08-19 12:57 广东
m
点赞 回复 分享
发布于 2024-08-19 14:26 江西
m
点赞 回复 分享
发布于 2024-08-19 17:15 浙江
m
点赞 回复 分享
发布于 2024-08-20 08:19 广东
算法太卷了
点赞 回复 分享
发布于 2024-08-23 16:40 黑龙江

相关推荐

03-25 14:40
门头沟学院 C++
1. 什么是虚函数、纯虚函数?2. 什么函数不能声明为虚函数,析构为什么要声明为虚函数?3. 没有虚函数的话,C++如何实现多态4. 同一个类的不同对象的虚函数表是同一个吗5. 基类的虚函数表存放在内存的什么区,虚表指针vptr的初始化时间?6. 虚函数内部调用非虚函数是调用指针类还是对象类?7. 纯虚函数?使用场景有哪些?8. 纯虚继承解决什么问题?1. 虚函数是在面向对象编程中用于实现动态多态特性的机制;通过将基类的成员函数声明为虚函数,可以在派生类中重写这些函数,从而根据对象的实际类型确定调用函数版本;纯虚函数是一个在基类声明的虚函数,但没有在基类中提供实现。通过在函数声明的结尾使用=0来标记;2. 构造函数:因为在对象构建之前还未创建虚函数表;静态函数:静态函数没有this指针,与对象无关,不能声明为虚函数;内联函数:虚函数可以是内联的,但是当虚函数表现为多态的时候不可以是内联,因为内联是发生在编译期间的,而动态是发生在运行状态;析构函数可以是虚函数,而且建议都这么做,当将基类中的析构函数声明为虚函数的时候,在执行析构的时候,可以确保派生类的析构函数也被执行;3.  使用函数指针,使用模版(在编译时实现多态),使用策略模式(运行在运行时选择算法和行为);4. 同一个类的不同对象的虚函数表是相同的,因为虚函数表是按类生成的,而不是按对象生成的。每个对象的虚函数指针指向类的虚函数表,从而实现多态调用;5. 存储在常量区(只读数据段),vptr的初始化发生在对象的构造函数被调用时;6. 当一个虚函数内部调用一个非虚函数时,调用的是指针类型所指向的类中的函数,而不是对象实际类型的类中的函数;7. 纯虚函数是C++中用于定义抽象基类的工具。一个包含纯虚函数的类被称为抽象类,不能被实例化。纯虚函数的目的是让基类定义一个接口,而不提供具体的实现,具体的实现由派生类来完成。场景:定义通用接口、实现多态、延迟绑定;8. 纯虚继承(也称为虚继承)是C++中用于解决多重继承带来的某些问题的一种机制。以下是纯虚继承主要解决的问题:解决函数调用的歧义,避免成员变量的重复,解决菱形继承中的重复继承问题(菱形继承是指一个派生类从两个基类派生,而这两个基类又有一个共同的基类。如果不使用纯虚继承,派生类会从两个基类各集成一份共同基类的成员,导致重复继承和访问歧义;纯虚函数继承确保派生类只继承一份共同基类的成员);
点赞 评论 收藏
分享
03-22 21:02
已编辑
中南大学 Java
人才池是我家:第三题其实肯定是左边一堆1右边一堆1,中间一串1010101..,维护这三坨区间的左右端点就行
查看1道真题和解析 投递美团等公司6个岗位 你的秋招第一场笔试是哪家
点赞 评论 收藏
分享
评论
3
6
分享

创作者周榜

更多
牛客网
牛客企业服务