LeetCode | 60. Permutation Sequence

 

题目:

The set [1,2,3,...,n] contains a total of n! unique permutations.

By listing and labeling all of the permutations in order, we get the following sequence for n = 3:

  1. "123"
  2. "132"
  3. "213"
  4. "231"
  5. "312"
  6. "321"

Given n and k, return the kth permutation sequence.

Note:

  • Given n will be between 1 and 9 inclusive.
  • Given k will be between 1 and n! inclusive.

Example 1:

Input: n = 3, k = 3
Output: "213"

Example 2:

Input: n = 4, k = 9
Output: "2314"

 

代码:

class Solution {
public:
    string getPermutation(int n, int k) {
		vector<int> nums(n+1, 0);
		vector<char> letter(n+1, 0);
		nums[0] = 1;
		for(int i = 1; i <= n; i++)
			nums[i] = nums[i - 1] * i;
		for(int i = 0; i < n; i++)
			letter[i] = i + 1 + '0';
		string res = "";
		k--;
		for(int i = 0; i<n; i++)
		{
			int idx = k / nums[n - i - 1];
			res += letter[idx];
			letter.erase(letter.begin()+idx);
			k -= nums[n - i - 1] * idx;
		}
		return res;
	}
};

 

题外话:

转眼又到了月末,夏天转瞬就过去了,秋风吹起了凉意。

最近因为ddl加上团队项目有些顾及不暇,整体感觉有些疲惫。

过去一个月,经历了一些冲击,也收获了难得的经历,有晴有缺。最近的工作节奏是长线的压力,到下周算是阶段性结束,尽管还有很多任务没有完成,不过要坚持下去呀!令人感激的是,今天和boss说希望多一些时间来完成下周的ddl,他居然非常轻松地答应了,真的好开心啊!就像是小时候,努力了很久想要做一件事,然后得到了认同和支持。要记下老板的这次宽容,还有给我的空间,记笔记记笔记。这次的项目还有一个很深刻的体会是,不能轻言放弃,机会就在下一次坚持的第二天看到训练结果的时候!哈哈哈哈哈 真的有好多感触~ 具体的下周末再记下来好了~ 虽然经历了很多苦难和挫折,还有一些打击,但是回过头去看,对自己宽容一些,其实都是满满的收获啊,连并着那些失败和曾经失落的羽毛。

最近看到一句话,要给生活留白,就会有意想不到的惊喜。

虽然已经火烧眉毛,我还是会放过自己让自己睡饱了觉,好好吃东西,哈哈哈哈,因为ddl不是天天有,但是日子是自己的,一定要开心的过啊!好了,又说了好多碎碎念。希望下个月的flag(因为各种项目推迟要做的事情)可以一个个的完成!

 

再见,八月,再见,夏天。你好,九月,你好,秋天。

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值