亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

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
郑州市| 高州市| 崇仁县| 阜南县| 金溪县| 永春县| 常宁市| 宿迁市| 德格县| 赣榆县| 望城县| 淮北市| 罗平县| 沁水县| 东莞市| 平凉市| 繁峙县| 登封市| 政和县| 宜阳县| 新化县| 天等县| 金沙县| 麦盖提县| 满城县| 高淳县| 永兴县| 宜兰县| 天镇县| 娄烦县| 嘉黎县| 长沙市| 义马市| 车致| 青川县| 兴国县| 澜沧| 株洲市| 高碑店市| 安龙县| 航空|