【精】LintCode领扣算法问题答案:197. 排列序号

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;
    }
}

最后说两句

非常感谢你阅读本文章,如果你觉得本文对你有所帮助,请留下你的足迹,点个赞,留个言,多谢~

作者水平有限,如果文章内容有不准确的地方,请指正。

希望小伙伴们都能每天进步一点点。

声明

本文由二当家的白帽子博客原创,转载请注明来源,谢谢~

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 鲸 设计师:meimeiellie 返回首页