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 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;ibackup) result = min(result, temp); } while (next_permutation(digit.begin(), digit.end())); if(result<=INT_MAX) return result; else return -1;