197. 排列序号
描述
给出一个不含重复数字的排列,求这些数字的所有排列按字典序排序后该排列的编号。其中,编号从1开始。
样例 1:
输入:
[1,2,4]
输出:
1
样例 2:
输入:
[3,2,1]
输出:
6
题解
public class Solution {
/**
* @param A: An array of integers
* @return: A long integer
*/
public long permutationIndex(int[] A) {
// write your code here
long permutation = 1;
long result = 0;
for (int i = A.length - 2; i >= 0; --i) {
int count = 0;
for (int j = i + 1; j < A.length; ++j) {
if (A[i] > A[j]) {
++count;
}
}
result += count * permutation;
permutation *= A.length - i;
}
return result + 1;
}
}
最后说两句
非常感谢你阅读本文章,如果你觉得本文对你有所帮助,请留下你的足迹,点个赞,留个言,多谢~
作者水平有限,如果文章内容有不准确的地方,请指正。
希望小伙伴们都能每天进步一点点。
声明
本文由二当家的白帽子博客原创,转载请注明来源,谢谢~