饿了么笔试第二题
😅智力题,没 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配图神器#
下来问 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配图神器#
全部评论
找规律做的,也只做到98% 死活过不去剩下的

T 感觉不用直接计算,因为 i^2 % 3 不是0就是1。i^2 % 3 = 0的时候,i % 3 ==0。所以只要计算[1-n] 不整除3的个数,这些都提供了1,在对这些和取余。就是最后平方和取余的结果。(这样就防止n超大的时候,避免直接计算)
题是啥

回溯能写吗
先只考虑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-04 15:19
南京邮电大学 Java 点赞 评论 收藏
分享