Re: [问卦] 这段code要怎么打?

楼主: cool9203 (看我翘翘的)   2018-04-17 04:36:21
废物学店生睡不着分享一下自己的想法QQ
[2,3,6] = array[0,1,1,0,0,1] = (1 , 3 , n-1-3)
这array想成环状的,而间隔值n是固定的,所以只要找出2个间隔值就可以找到第3个间隔值
ex [1,2,3]=(1 , 1 , n-1-1)
[1,3,5]=(2 , 2 , n-2-2)
而从上面2个就可以知道这2个不是同样排列方法的
或是[6,2,3]=(2 , 1 , n-2-1)
[6,1,3]=(1 , 2 , n-1-2)
再做排序可得2个间隔值会是相等,所以这两个排列方法相同
所以只要找出2个间隔值就可以确定这排列属于哪个状态了
但是这方法只能判断2个排列是不是相等的
如果要找出所有一样的排法可能要用其他方法比较好QQ
上面有错请跟我说,谢谢版上各位大神
作者: wuyiulin (龙破坏剑士-巴斯达布雷达)   2018-04-17 04:49:00
睡前随便看一看好像对 不过目前performance最高的还是用shift那个大大
作者: VIGUTA (黄道第十四宫-鲁蛇座)   2018-04-17 04:55:00
左转刷题板啦干
楼主: cool9203 (看我翘翘的)   2018-04-17 05:03:00
shift那太快了,先看哪个再回头来想只有想到这方法了,而且有间隔值后从1加到6可以拿到所有同组排列,只是是o(n),整体感觉还是输shift的QQ

Links booklink

Contact Us: admin [ a t ] ucptt.com