饿了么算法笔试

继续裸笔,是比蚂蚁略简单点
第一题送分不记得了
第二题,给k个数(不重复且为1到k),有一次交换两个数顺序的操作,要求交换后数组里只有2个位置的数不满足ai=i。问有多少种操作方案
第三题火锅下菜,n个菜,m个要求(菜品必须在菜品v前面),每个菜品最多一个要求,每个要求最多一个菜品,问最多满足几个要求,并输出最小字典序的下菜顺序。
全部评论
第三题我感觉有点奇怪,明明一个条件不应该就会约束两个菜吗?整了一小时通过0
1 回复 分享
发布于 03-14 21:14 湖北
佬 你是三道都做出来了么
点赞 回复 分享
发布于 03-14 20:52 湖北
请问第二题你是怎么做的呀?我只想到0个错位点有(n选2)种,2个错位点0种,3个有3种,4个有点没搞清楚。再多应该不可能了吧
点赞 回复 分享
发布于 03-14 21:06 美国
已老实
点赞 回复 分享
发布于 03-14 21:59 江苏
比起工程 这看起来好像是人做的
点赞 回复 分享
发布于 03-14 21:59 江苏
第二题,a_i的大小有限制条件么,(1 <= a_i <= n,且唯一)忘了
点赞 回复 分享
发布于 03-14 22:02 广东
第三题显然是并查集,求出每个集合的大小(元素个数),然后就是一个组合数学的处理,因为每个集合内的元素顺序是固定的,那么用总组合数(n!),除以每个集合大小的阶乘就行
点赞 回复 分享
发布于 03-20 10:22 江西

相关推荐

03-14 21:04
已编辑
北京邮电大学 Java
如题,楼主已经交卷,不存在作弊行为第二题,楼主的代码如下,测试了给出的用例2&nbsp;3&nbsp;4&nbsp;答案正确,换成2&nbsp;4&nbsp;3答案错误,为什么?我不明白哪里有问题,求大伙帮忙看看由于明后天还有三场笔试,如果这个问题解决不了就三场全寄了,😭😭求求帮帮我自己试过自测用例2&nbsp;4&nbsp;3/1&nbsp;3/2&nbsp;4&nbsp;4/&nbsp;1&nbsp;4/2&nbsp;3&nbsp;3全都报错,但是单看自己的输出应该是对的,为什么ps:目前已知==2那里的if块输出应该是2&nbsp;1&nbsp;3,但是这和我上面提的用例无关吧,输入3&nbsp;和4都不进到这个if的文本代码如下:import&nbsp;java.util.Scanner;//&nbsp;注意类名必须为&nbsp;Main,&nbsp;不要有任何&nbsp;package&nbsp;xxx&nbsp;信息public&nbsp;class&nbsp;Main&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Scanner&nbsp;in&nbsp;=&nbsp;new&nbsp;Scanner(System.in);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;注意&nbsp;hasNext&nbsp;和&nbsp;hasNextLine&nbsp;的区别&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;t&nbsp;=&nbsp;in.nextInt();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&amp;amp;lt;&nbsp;t;&nbsp;i++){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;n&nbsp;=&nbsp;in.nextInt();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(n&nbsp;&amp;amp;lt;&nbsp;4&nbsp;){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(-1&nbsp;+&nbsp;&amp;amp;quot;&nbsp;&amp;amp;quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(n*(n+1)*(2*n+1)/6&nbsp;%3&nbsp;==&nbsp;0){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;j&nbsp;=&nbsp;1;&nbsp;j&nbsp;&amp;amp;lt;=&nbsp;n;&nbsp;j++){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(j+&amp;amp;quot;&nbsp;&amp;amp;quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;if&nbsp;(n*(n+1)&nbsp;*(2*n+1)/6&nbsp;%3&nbsp;==&nbsp;1){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(2+&amp;amp;quot;&nbsp;&amp;amp;quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(1+&amp;amp;quot;&nbsp;&amp;amp;quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;j&nbsp;=&nbsp;3;&nbsp;j&nbsp;&amp;amp;lt;=&nbsp;n;&nbsp;j++){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(j+&amp;amp;quot;&nbsp;&amp;amp;quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;if&nbsp;(n*(n+1)&nbsp;*(2*n+1)/6&nbsp;%3&nbsp;==&nbsp;2){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(1+&amp;amp;quot;&nbsp;&amp;amp;quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(3+&amp;amp;quot;&nbsp;&amp;amp;quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(2+&amp;amp;quot;&nbsp;&amp;amp;quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;j&nbsp;=&nbsp;4;&nbsp;j&nbsp;&amp;amp;lt;=&nbsp;n;&nbsp;j++){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(j+&amp;amp;quot;&nbsp;&amp;amp;quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;}}
ygLance:自测的时候?牛客的模式是除非你用题目给出的样例,否则不告诉你结果对不对的
投递饿了么等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
4
分享

创作者周榜

更多
牛客网
牛客企业服务