注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号 
x
最近看到的onsite题目:
给你一个shuffle数组,一个input, 比如input = [0, 1, 2, 3] , 还有一个排序用的数组p = [3, 2, 1, 0], 你需要照着排序用的数组提供的index排序原input。 所以[0, 1, 2, 3] 经过排序后会变成 [3, 2, 1, 0].
我们根据得到的input再次进行排序,还是按照p提供的顺序来排, 那么此时的[3, 2, 1, 0] 就会变回成[0, 1, 2, 3].
所以题目问的就是给你一个p, 问你经过多少次iteration, 可以变回到初始的顺序。
--------
可能有点难理解,我再解释下,我们看例子里的p = [3, 2, 1, 0] , 意思就是把index为3的元素移到第一个位置, index为2的元素移到第二个位置 。。。 这个p 可以看出来其实就是位置3和位置0换位了,位置1和位置2换位了,所以两次即可。 |