博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
边工作边刷题:70天一遍leetcode: day 27
阅读量:4635 次
发布时间:2019-06-09

本文共 799 字,大约阅读时间需要 2 分钟。

Permutation Sequence

原理:一个permutation是n位,在第i位的值取决于有多少个i-1位的组合。这i-1位的组合是在高位pick完之后剩下的数中

细节:

  • 不同于decimal,位数是固定的,所以不能用k>0作为循环条件(这样只会选择某几位),而是用for循环。
  • 当i=0的时候,要选取最后一个位,但factorial不能再除了i了,所以这里要加corner的判断
class Solution(object):    def getPermutation(self, n, k):        """        :type n: int        :type k: int        :rtype: str        """        fact = 1        nums = []        res = []        for i in range(1, n):            fact*=i                    for i in range(1, n+1):            nums.append(i)        k-=1        for i in range(n-1, -1, -1):            p = k/fact            k = k-k/fact*fact            res.append(str(nums[p]))            del nums[p]            if i!=0: fact/=i        #res.append(str(nums[0]))        return ''.join(res)

转载于:https://www.cnblogs.com/absolute/p/5678070.html

你可能感兴趣的文章
Elgg网站迁移指南
查看>>
素数筛法优化
查看>>
【转】常见系统中文字体的英文名
查看>>
installshield 注册dll
查看>>
京华同学聚会
查看>>
JSP--JavaBean
查看>>
成功将BlogEngine 1.5 升级到了BlogEngine 2.0
查看>>
【shell】创建长目录,目录存在则忽略,缺失则创建
查看>>
个人随笔、收藏——(包括技术、设计思想等)
查看>>
第一段冲刺_个人总结_5.2
查看>>
Usage and Idioms——Categories
查看>>
一: 建立Vue sampleproject
查看>>
数据结构之shell排序
查看>>
CodeForces 375D Tree and Queries
查看>>
牛客~~打篮球~~~模拟水题
查看>>
LeetCode-198. 打家劫舍
查看>>
5 -- Hibernate的基本用法 --2 1 Hibernate 下载和安装
查看>>
Socket
查看>>
【C#公共帮助类】10年代码,最全的系统帮助类
查看>>
JQuery UI
查看>>