饿了么笔试第二题

😅智力题,没 A 出来
下来问 gpt 有了一定思路

直接顺序序列计为 T
T=1*1+2*2+......
直接用平方和公式 O(1)就能计算

如果 T%3=0 那就是答案
如果 T%3=1 那么我们可以交换两个相邻的数,结果就会减少 ai*i+aj*j-ai*j-aj*i=(i-j)*(ai-aj)
由于我们是顺序序列,交换相邻的数结果减少 1*1=1,就有答案了
如果 T%3=2 那么我们可以交换两个相邻的数重复两次就行

总结
如果 T%3=0   顺序输出就行
如果 T%3=1    交换 1 2 顺序输出,也就是 2 1 3 4 5 6.....
如果 T%3=2    交换 2 1 然后交换 3 4 输出,也就是 2 1 4 3 5 6 7 8 9.....

#牛客AI配图神器#
全部评论
先只考虑n大于等于6的情况可以将1-n按照模3分组,得到x0个0,x1个1,x2个2,该问题变为匹配问题,先考虑完美配对,则最终和模3值v=(x1+x2)%3,如果v=0,则直接输出1-n顺序排列,如果v=1,则将配对中的0-0,1-1改为0-1,0-1;如果v=2 则将0-0,0-0,1-1,1-1 改为 四个0-1。再考虑n<6的情况,可以直接穷举
点赞 回复 分享
发布于 03-17 22:12 甘肃
回溯能写吗
点赞 回复 分享
发布于 03-15 02:33 陕西
题是啥
点赞 回复 分享
发布于 03-14 23:14 河北
T 感觉不用直接计算,因为 i^2 % 3 不是0就是1。i^2 % 3 = 0的时候,i % 3 ==0。所以只要计算[1-n] 不整除3的个数,这些都提供了1,在对这些和取余。就是最后平方和取余的结果。(这样就防止n超大的时候,避免直接计算)
点赞 回复 分享
发布于 03-14 21:16 天津

相关推荐

头像
05-08 13:00
已编辑
华南师范大学 Java
&nbsp;&nbsp;🧠&nbsp;个人背景与项目经历1.你现在还在学校吗?为什么不回学校了?2.去年去实习过?实习做的是XX类的吗?3.实习时你们主要用的是什么框架?Spring&nbsp;Boot&nbsp;加&nbsp;MyBatis&nbsp;吗?用了&nbsp;MyBatis&nbsp;Plus&nbsp;吗?4.你做的那个XX项目是公司项目还是个人做的练手项目?5.项目是单体架构还是微服务架构?6.实习期间有人带你吗?需求是怎么对接的?💻&nbsp;技术能力&nbsp;-&nbsp;后端开发🧵&nbsp;多线程与分布式7.Redis&nbsp;分布式锁你了解吗?它是怎么实现的?8.你在项目中分布式锁是在哪些场景下用的?9.分布式锁代码是怎么写的?Redis&nbsp;中&nbsp;setnx&nbsp;怎么配合使用?☁&nbsp;MQ&nbsp;&amp;&nbsp;延迟任务10.你在项目里&nbsp;MQ&nbsp;是怎么用的?是用来实现什么业务逻辑?11.延迟队列的作用是什么?是为了解决什么问题?12.延迟队列和死信队列具体是怎么配合使用的?13.如果用户已经支付了,延迟队列的消息该怎么处理?消费者怎么判断?14.你用的是死信队列吗?什么时候消息会被加入到死信队列?15.死信队列在你项目里是怎么配置的?你具体用了什么机制?🧩&nbsp;MySQL&nbsp;&amp;&nbsp;数据库能力16.MySQL&nbsp;的&nbsp;WITH&nbsp;语法你是怎么用的?17.用&nbsp;WITH&nbsp;做递归查询的效率怎么样?适用于高并发吗?18.联合索引&nbsp;a,&nbsp;b,&nbsp;c,如果只用&nbsp;b&nbsp;查询,能不能走索引?19.联合索引&nbsp;a=0&nbsp;且&nbsp;b&gt;100&nbsp;的场景能不能走索引?为什么?🧠&nbsp;Java&nbsp;基础20.HashMap&nbsp;的自动扩容机制你了解吗?触发条件和扩容倍数是什么?🔍&nbsp;接口请求流程21.从前端点击按钮,到后台&nbsp;Controller&nbsp;被调用,中间请求的整个流程是怎样的?22.HTTP&nbsp;请求是如何从域名解析到服务器的?怎么找到具体的服务?23.后端是如何监听端口并响应请求的?Tomcat&nbsp;在这里起到什么作用?
查看23道真题和解析 面试问题记录
点赞 评论 收藏
分享
评论
6
4
分享

创作者周榜

更多
牛客网
牛客企业服务