我偶然发现了这个采访问题:
给出字典顺序中的元素列表(即['a','b','c','d']),找到第n个排列
我自己试了一下,花了大约30分钟才解决.(我最终在Python中使用了一个~8-9行解决方案).只是好奇 - 解决这类问题需要多长时间?我花了太长时间吗?
任何人都知道在Java中生成整数列表的随机排列的快速/最快方法.例如,如果我想要一个长度为5的随机排列,那么1 5 4 2 3每个5!可能性都是同样可能的.
我对如何解决这个问题的想法是运行一个方法,该方法在所需长度的数组中生成随机实数,然后对它们进行排序,返回索引,即0.712 0.314 0.42 0.69 0.1返回一个排列5 2 3 4 1.我认为这可以运行在O(n^2)我的代码大约运行的那一刻,O(n^3)并且是我的程序当前运行时间的很大一部分.从理论上讲,这似乎没问题,但我在实践中并不确定.