2015美团网 哈工大 第k个排列

leetcode 上的Permutation Sequence 下面是可执行代码
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
以1 开头 123,132,共2!个数
2 开头 213,231
3开头 312, 321
如果给你弟k个,能求出它位于以谁开头不?只要求出它位于第几个2!个,总体思路就是这个
import java.util.ArrayList;
public class Main {
//求N的阶乘
public static int fic(int n)
{
int res=1;
for(int i=1;i<=n;i++)
{
res=res*i;
}
return res;
}
public static String getPermutation(int n, int k) {
int r=fic(n);
if(k>r) return null;
ArrayList<Integer> arr=new ArrayList<Integer>();
for(int i=1;i<=n;i++)
{
arr.add(i);
}
//形成 1,2,3,4,5,6,7 的列表
//
k--;
StringBuffer sbf=new StringBuffer();
for(int i=n;i>=1;i--) //因为排列共有n个,所以我们不断从链表中删除一个,加入string中,最后一个直接加在最后面
{
r=r/i;
int t=k/r;//选择删除的位置
sbf.append(arr.remove(t));
k=k%r;
}
return sbf.toString();
}
public static void main(String args[])
{
System.out.println(getPermutation(2, 2));
}
}
2015美团网 哈工大 第k个排列的更多相关文章
- 美团网基于机器学习方法的POI品类推荐算法
美团网基于机器学习方法的POI品类推荐算法 前言 在美团商家数据中心(MDC),有超过100w的已校准审核的POI数据(我们一般将商家标示为POI,POI基础信息包括:门店名称.品类.电话.地址.坐标 ...
- 后盾网VIP美团网开发(基于HDPHP)(全套38课)
教程简介 本教程由后盾网讲解,共40节,主要介绍了美团网的开发,从需求分析出发,对商铺的建立.购物流程的构建及订单处理等都做了详细的介绍,非常适合做电子商务开发的朋友和同学参考学习使用,完整教程可以在 ...
- LeetCode 笔记21 生成第k个排列
题目是这样的: The set [1,2,3,…,n] contains a total of n! unique permutations. By listing and labeling all ...
- Android 仿美团网,大众点评购买框悬浮效果之修改版
转帖请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17761431),请尊重他人的辛勤劳动成果,谢谢! 我之前写 ...
- 高级爬虫工程师(Spider)-美团网-拉勾网-最专业的互联网招聘平台
高级爬虫工程师(Spider)-美团网-拉勾网-最专业的互联网招聘平台 高级爬虫工程师(Spider)
- LinkCode 第k个排列
http://www.lintcode.com/zh-cn/problem/permutation-sequence/# 原题 给定 n 和 k,求123..n组成的排列中的第 k 个排列. 注意事项 ...
- [Swift]LeetCode60. 第k个排列 | Permutation Sequence
The set [1,2,3,...,n] contains a total of n! unique permutations. By listing and labeling all of the ...
- 力扣算法题—060第K个排列
给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列. 按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下: "123" "132&qu ...
- LeetCode 60 第K个排列
题目: 给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列. 按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下: "123" "13 ...
随机推荐
- MySQL中SQL语句的分类
1:数据定义语言(DDL) :创建和删除数据库(CREATE DATABASE || DROP DATABASE):2:创建.修改.重命名.删除表(CREATE TABLE || ALTER TA ...
- 挑战Python-20160826
给你一字典a,如a={1:1,2:2,3:3},输出字典a的key,以','链接,如‘1,2,3'.
- 补充:学会Twitter Bootstrap不再难
博客园的兄弟姐妹们很给力,自从这篇文章写出后,有人可能会对2.x版本升级到3.x版本的区别有些好奇和模糊.现在将官方给出的说明贴上去: 从2.x升级到3.0版本 Bootstrap 3并不向后兼容Bo ...
- WPF中Application.Current的使用
WPF程序对应一个Application对象,当前的Application对象可以通过Application.Current获取,通过获取到的Application对象,我们可以做以下的事情: App ...
- Oracle表添加主键、外键
1.创建表的同时创建主键约束 (1)无命名 create table student ( studentid int primary key not null, studentname varchar ...
- 开发设计模式(五)单例模式(Singleton Pattern)
http://blog.sina.com.cn/s/blog_89d90b7c0101805m.html 单例模式:意思就是只有一个实例.单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提 ...
- iOS开发 AFNetworking 3.0使用遇到的问题
前段时间写了一个iOS开发之AFNetworking 3.0.4使用这篇文章,是基本的用法,昨天在使用的时候又出现了几个问题,特地俩记录下,希望能帮到大家! 问题一 我是做一个获取手机验证码的功能,进 ...
- js中的ajax的运用
XMLHttpRequest对象 IE7+,FireFox,Chrome,Opera,Safari创建XHR对象: var xhr=new XMLHttpRequest(); 创建XHR对象的兼容性写 ...
- centos 卸载vsftpd方法
centos 卸载vsftpd方法 在服务器上安装了vsftpd,配置出错需要卸载vsftpd.卸载vsftpd的命令如下: 1 [root@localhost ~]# rpm -aq vsftpd2 ...
- c# 捕捉键盘按键
//esc退出窗体 protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg , System.Windo ...