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