参考一个很巧妙的想法,源地址在这里
class Solution:
# @param {int[]} A an integer array
# @return {long} a long integer
def permutationIndex(self, A):
# Write your code here
n = len(A)
tmp_list = [0 for i in range(n)]
for i in range(n):
for j in range(i+1, n):
if A[i] > A[j]:
tmp_list[i] += 1
tmp_list[i] = (tmp_list[i], self.fac(n-i-1))
ans = 1
for tup in tmp_list:
ans += tup[0] * tup[1]
return ans
def fac(self, n):
if n == 0:
return 0
res = 1
for i in range(1, n+1):
res *= i
return res