中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

C++ next_permutation如何避免重復結果

c++
小樊
84
2024-07-13 04:26:27
欄目: 編程語言

在使用C++中的next_permutation函數生成排列時,可以通過在循環中添加判斷條件來避免重復結果。可以將生成的排列存儲在一個集合中,每次生成一個新的排列時,先判斷該排列是否已經存在于集合中,如果已經存在,則繼續生成下一個排列,直到生成一個不重復的排列為止。

以下是一個示例代碼:

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

int main() {
    std::vector<int> nums = {1, 2, 2, 3};
    std::sort(nums.begin(), nums.end());
    
    std::set<std::vector<int>> result_set;
    
    do {
        if (result_set.find(nums) == result_set.end()) {
            result_set.insert(nums);
            
            for (int num : nums) {
                std::cout << num << " ";
            }
            std::cout << std::endl;
        }
    } while (std::next_permutation(nums.begin(), nums.end()));
    
    return 0;
}

在上面的示例中,我們首先將輸入數組nums排序,然后使用next_permutation函數生成排列,并將每個排列存儲在result_set中。在每次生成一個新的排列時,我們先判斷該排列是否已經存在于result_set中,如果不存在,則輸出該排列并將其插入到result_set中。這樣就可以避免生成重復的排列結果。

0
河南省| 广宗县| 郴州市| 措勤县| 鄯善县| 马龙县| 渝北区| 繁昌县| 吴旗县| 遂川县| 邢台县| 铜陵市| 布尔津县| 五河县| 永昌县| 同心县| 凭祥市| 育儿| 大兴区| 民权县| 永城市| 安多县| 黄龙县| 周口市| 隆昌县| 桃源县| 桓台县| 山东| 元谋县| 湛江市| 株洲市| 高淳县| 吐鲁番市| 汶川县| 松江区| 石林| 疏附县| 余江县| 巴楚县| 庄河市| 香格里拉县|