Java实现-排列序号2
来源:互联网 发布:微擎源码 编辑:程序博客网 时间:2024/06/06 00:56
public class Solution { /** * @param A an integer array * @return a long integer */ public long permutationIndexII(int[] A) { // Write your code here long index=0;for(int i=0;i<A.length;i++){int count=0;for(int j=i+1;j<A.length;j++){if(A[j]<A[i]){count++;}}if(count>0){HashMap<Integer,Integer> map=new HashMap<Integer, Integer>();for(int j=i;j<A.length;j++){if(!map.containsKey(A[j])){map.put(A[j], 1);}else{int temp=map.get(A[j]);map.put(A[j], ++temp);}}int size=0;Set<Integer> set=map.keySet();List<Integer> list=new ArrayList<Integer>();for(Integer e:set){list.add(map.get(e));if(e<A[i]){size+=map.get(e);}}long fenZi=size*factorial(A.length-i-1);long fenMu=1;for(int j=0;j<list.size();j++){fenMu*=factorial(list.get(j));}index+=fenZi/fenMu;}}return index+1; } private static long factorial(int n){if(n==1){return 1;}else{return factorial(n-1)*n;}}}
阅读全文
0 0
- Java实现-排列序号2
- Java实现-排列序号1
- 排列序号
- 排列序号
- 排列序号
- 排列序号
- 排列序号
- 排列序号
- 全排列的序号
- Mysql 获取排列序号。
- 题目:排列序号
- LintCode 197. 排列序号
- lintcode ----排列序号
- LintCode:排列序号
- Lintcode 排列序号
- LintCode之排列序号
- 排列序号II
- 排列序号-LintCode
- JAVA_HOME配置
- Android的第一次课
- 关于JS优化
- eclipse android模拟器
- android应用案例:Tablayout 的使用(仿微信底栏)
- Java实现-排列序号2
- spring的Ioc和AOP
- 粒子滤波在目标跟踪的应用
- 开发环境搭建
- STM32 大小容量芯片之间的差别及启动文件的选择
- Java 定时任务的几种实现方式
- Kotlin 对比 转化
- POJ 1720 SQUARES 笔记
- 操作系统的发展和分类