Next Permutation

来源:互联网 发布:filter() 数组 编辑:程序博客网 时间:2024/06/08 19:39

题目大意:给定一个数,求比这个数大的下一个序列

解题思路:方法跟http://blog.csdn.net/xiaoxiaoluo/article/details/44228995 这题的非递归解法一一样


class Solution {public:    void nextPermutation(vector<int> &num) {        int index = num.size() - 1;        bool change = false;        for(int i = num.size() - 1; i > 0; i--) {            if(num[i - 1] < num[i]) {                index = i;                change = true;                break;            }        }        if(!change) {            sort(num.begin(), num.end());            return;        }        for(int i = num.size() - 1; i > 0; i--) {            if(num[i] > num[index - 1]) {                swap(num[i], num[index - 1]);                for(int low = index, high = num.size() - 1; low <= high; low++, high--) {                    swap(num[low], num[high]);                }                break;            }        }      }};


0 0
原创粉丝点击