原题https://oj.leetcode.com/problems/next-permutation/
解法在这里http://blog.csdn.net/lanxu_yy/article/details/17593937
把http://blog.csdn.net/lanxu_yy/article/details/17593937的算法转过来。如下
思路:
STL中的经典算法。函数实现原理如下:
在当前序列中,从尾端往前寻找两个相邻元素,前一个记为*i,后一个记为*ii,并且满足*i < *ii。然后再从尾端(这里很重要,一定要注意从尾端)寻找另一个元素*j,如果满足*i < *j,即将第i个元素与第j个元素对调,并将第ii个元素之后(包括ii)的所有元素颠倒排序,即求出下一个序列了。