251. 打印全排列
題目描述
給定一個(gè)正整數(shù)n,我們?nèi)〕銮皀小的正整數(shù),即1~n這n個(gè)數(shù)字,將他們排列,就一共有n!種排列方案,所有的排列方案統(tǒng)稱為n的全排列,現(xiàn)在你需要做的事情就是把n的全排列都輸出出來(lái)。
解答要求時(shí)間限制:1000ms, 內(nèi)存限制:100MB
輸入
輸入只有一個(gè)數(shù)字n(2 <= n <= 7)
輸出
輸出n的全排列,一共輸出n!行,每行輸出n個(gè)數(shù)字,數(shù)字之間沒(méi)有空格,輸出的順序按照數(shù)字組成的字符串的字典序從小到大輸出。
樣例
除此以外還有一種方法可以求,大致思想是從后往前找,一直到前一個(gè)數(shù)字比當(dāng)前數(shù)字小的地方,在后面的數(shù)字中選擇比前一個(gè)數(shù)字稍大一點(diǎn)的數(shù)字與前一個(gè)數(shù)字交換,然后將后面的數(shù)字從小到大排序即可。
方法1:調(diào)用c++接口
// we have defined the necessary header files here for this problem. // If additional header files are needed in your program, please import here. #include <vector> #include <algorithm> int main() { vector<int>nums; int n; cin>>n; for(int i = 1;i<= n;i++) nums.push_back(i); do{ for(int i = 0;i<n;i++) { cout<<nums[i]; } cout<<endl; }while(next_permutation(nums.begin(),nums.end())); // please define the C++ input here. For example: int a,b; cin>>a>>b;; // please finish the function body here. // please define the C++ output here. For example:cout<<____<<endl; return 0; }
以大多數(shù)人努力程度之低,根本輪不到去拼天賦~

浙公網(wǎng)安備 33010602011771號(hào)