题解 | #有重复项数字的全排列#

有重复项数字的全排列

https://www.nowcoder.com/practice/a43a2b986ef34843ac4fdd9159b69863

#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;


//class Solution {
//public:

vector<vector<int> > permute(vector<int>& num) {
    sort(num.begin(), num.end());
    vector<vector<int>> res;
    do {
        res.push_back(num);
    } while (next_permutation(num.begin(), num.end()));
    res.erase(unique(res.begin(), res.end()),res.end());
    return res;
}

int main() {
    int n;
    cin >> n;
    vector<int> num;
    int temp;
    for (int i = 0; i < n; i++) {
        cin >> temp;
        num.push_back(temp);
    }
    vector<vector<int>> end = permute(num);
    for (int i = 0; i < end.size(); i++) {
        for (int j = 0; j < n; j++) {
            cout << end[i][j] << ',';
        }
        cout << ' ';
    }
    return 1;
    /*vector<int> num;
    int temp;
    while (cin >> temp) {
        num.push_back(temp);
        if (cin.get() == '\n')
            break;
    }
    vector<vector<int>> end = permute(num);
    int i = 0;
    while (!end.empty()) {
        for (int j = 0; j < end[i].size(); j++) {
            cout << end[i][j] << ',';
        }
        i++;
        cout << ' ';
    }
    return 1;*/
}
//};
全部评论

相关推荐

04-03 18:59
吉林大学 Java
大专人陈义:别投了,我看到有人点了第二个链接投递,还没退出界面,不合适的邮件就发过来了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务