60. 第k个排列 回溯法+数学法

该博客介绍了如何解决第60题——找出第k个排列的问题。博主通过两种方法进行讲解:一是利用回溯法进行全排列,并在找到第k个排列时停止;二是采用数学方法,通过对全排列总数n!的分析,确定每个数字作为开头的可能性,逐步缩小选择范围来找到目标排列。
摘要由CSDN通过智能技术生成

60. 第k个排列

难度:中等
题目描述
在这里插入图片描述

解题思路

1、回溯法

就是很正常的全排列,然后设置一个计数位,如果count == k,就提前终止递归过程

/*
					  * 60. 第k个排列
					  * 2020/9/5
					  * medium
					  */
					 int count1 = 0;
					 String res = "";
					 public String getPermutation(int n, int k) {
   
						 StringBuilder sb = new StringBuilder();
						 boolean[] visit = new boolean[n+1];
						 getPermutationHelper(n,k,sb,visit);
						 
						 return res;
					    }
					 
					 public void getPermutationHelper(int n,int k,StringBuilder sb
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值