程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> Permutations

Permutations

編輯:關於C++

Given a collection of numbers, return all possible permutations.

For example,
[1,2,3] have the following permutations:
[1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], and [3,2,1].


全排列,從全體元素中挑一個,放在第一個位置。

在從剩下的元素中,放在第二個位置。

在從剩下的元素中,放在第三個位置。

。。。。。。

此算法,利用交換,將已經被選擇的元素交換到指定位置。右邊則是剩下待選的元素。


class Solution {
public:
    vector > permute(vector &num) {
        vector > ans;
        helper(ans, 0, num);
        return ans;
    }

    void helper(vector > &ans, size_t start, vector &num) {
        if (start+1 >= num.size())
                return ans.push_back(num);

        for (size_t i=start; i

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved