码迷,mamicode.com
首页 > 其他好文 > 详细

[LeetCode] Next Permutation

时间:2015-03-04 16:00:16      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:

代码:

 1 class Solution {
 2 public:
 3     void nextPermutation(vector<int> &num) {
 4 
 5         const auto first = num.begin();
 6         const auto last = num.end();
 7         auto pivot = prev(last);
 8         while (pivot != first && *prev(pivot) >= *pivot) {
 9             pivot--;
10         }
11         if (pivot == first){
12             reverse(first, last);
13             return;
14         } else
15             pivot--;
16         auto ppivot = prev(last);
17         while (*ppivot <= *pivot) {
18             ppivot--;
19         }
20         swap(*pivot, *ppivot);
21         reverse(++pivot, last);
22         return;
23     }
24 };

 

杂记:

1. 感觉是纯粹的数学方法套用公式

技术分享

 

[LeetCode] Next Permutation

标签:

原文地址:http://www.cnblogs.com/Azurewing/p/4313464.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!