排列序号

原创 2016年05月31日 17:16:51

给出一个不含重复数字的排列,求这些数字的所有排列按字典序排序后该排列的编号。其中,编号从1开始。

例如,排列[1,2,4]是第1个排列,第二个[1,4,2],第六个为[4,2,1]

public class Solution {
    /**
     * @param A an integer array
     * @return a long integer
     * 对4个数的排列,各位的权值为:3!,2!,1!,0!。
     * 第一位之后的数小于第一位的个数是x,第二位之后的数小于第二位的个数是y
     * ,第三位之后的数小于第三的个数是z,第四位之后的数小于第四位的个数是w
     * ,则abcd排列所在的序列号:index = x*3!+y*2!+z*1!,<0!=0> 编号从0开始
     */
    public long permutationIndex(int[] A) {
        // Write your code here
        long index = 0;//记录序号
        long position = 2;//数字的位置
        long weight = 1;//权值
        
        //从倒数第二位开始数,看他的后面有几个小于他的数
        for (int i = A.length - 2; i >= 0; i--){
            long count = 0;
            for (int j = i + 1; j < A.length; j++){
                if (A[j] < A[i]){
                    count++;
                }
            }
            index += (weight * count);
            weight *= position;
            position += 1;
        }
        return (index + 1);
    }
}

LabView 出圈人序号排列

  • 2014年04月04日 21:49
  • 32KB
  • 下载

算法:康托展开式——实现全排列序列与序号的映射

康托展开式实现了由1到n组成的全排列序列到其编号之间的一种映射,下面会给出例子,虽然这个公式应用不是很多,但这种思想值得学习,首先给出其公式: X=an*(n-1)!+an-1*(n-2)!+...+...

数据库SQL中对查询结果排序排列序号编号,Oracle分析函数 rank,dense_rank,row_number使用和区别

Oracle从8i开始就提供了3个分析函数:rank,dense_rank,row_number (1)Rank函数返回一个唯一的值,除非遇到相同的数据时,此时所有相同数据的排名是一样的,    ...

lintcode Permutation Index 排列序号

排列序号  描述 笔记  数据  评测 给出一个不含重复数字的排列,求这些数字的所有排列按字典序排序后该排列的编号。其中,编号从1开始。 您在真实...

LintCode之排列序号

给出一个不含重复数字的排列,求这些数字的所有排列按字典序排序后该排列的编号。其中,编号从1开始。...

python_lintcode_简单题_8旋转字符_420报数_197排列序号

python× 8-旋转字符× 420报数× 197排列序号× lintcode×

在表table最前插入tr多行并改为正常排列的序号

测试页面           --> 这是默认第一行td --> --> -->     rowspan="1" aria-controls="sample_edit...

Java实现-排列序号2

public class Solution {     /**      * @param A an integer array      * @return a long integer      ...

排列序号

题目描述:给出一个不含重复数字的排列,求这些数字的所有排列按字典序排序后该排列的编号。其中,编号从1开始。 样例:例如,排列 [1,2,4] 是第 1 个排列。 关于“字典序”和排列的相关基础概...

Lintcode 排列序号

题目:给出一个不含重复数字的排列,求这些数字的所有排列按字典序排序后该排列的编号。其中,编号从1开始。样例:例如,排列 [1,2,4] 是第 1 个排列。分析: 这个题目的意思就是,给定一组数字(不...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:排列序号
举报原因:
原因补充:

(最多只允许输入30个字)