标签:sort dig back and style begin backup for 最小
Given a positive 32-bit integer n, you need to find the smallest 32-bit integer which has exactly the same digits existing in
the integer n and is greater in value than n. If no such positive 32-bit integer exists, you need to return -1.
思路:
求元素的全排列,然后选出比n大的所有元素中最小的那个。
vector<int>digit; int backup = n; while(n) { digit.push_back(n%10); n/=10; } sort(digit.begin(),digit.end()); long long result = INT_MAX +1LL; do { long long temp =0; for(int i=0;i<digit.size();i++) { temp = temp*10 + digit[i]; } if (temp > backup) result = min(result, temp); } while (next_permutation(digit.begin(), digit.end())); if(result<=INT_MAX) return result; else return -1;
[leetcode-556-Next Greater Element III]
标签:sort dig back and style begin backup for 最小
原文地址:http://www.cnblogs.com/hellowooorld/p/6684645.html