返回第k个排列

返回第k个排列

http://www.nowcoder.com/questionTerminal/186c35e87f7b45beaa556dbbf670759e

C++求排列有三种方法:

  1. 利用库函数next_permutation
  2. 基于交换
  3. 基于回溯

下面用库函数next_permutation求:

//
// Created by jt on 2020/9/26.
//
#include <vector>
#include <string>
using namespace std;

class Solution {
public:
    /**
     *
     * @param n int整型
     * @param k int整型
     * @return string字符串
     */
    string getPermutation(int n, int k) {
        // write code here
        vector<char> vec;
        for (int i = 1; i <= n; ++i) vec.push_back(i+'0');
        while (--k > 0 && next_permutation(vec.begin(), vec.end())) {}
        return string(vec.begin(), vec.end());
    }
};
刷遍天下无敌手 文章被收录于专栏

秋招刷题历程

全部评论

相关推荐

不懂!!!:感觉你的项目描述太简单了,建议使用star描述法优化提炼一下,就是使用什么技术或方案解决了什么问题,有什么效果或成果,例如:对axios进行了二次封装,实现了请求的统一管理、错误的集中处理以及接口调用的简化,显著提高了开发效率和代码维护性,使用canvas技术实现了路线绘制功能,通过定义路径绘制函数和动态更新机制,满足了简化的导航可视化需求,提升了用户体验。像什么是使用其他组件库,基本功能描述就最好不要写到项目成果里面去了,加油
点赞 评论 收藏
分享
季桑陌:这怎么看是不是外包啊
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务