题目:556. 下一个更大元素 III
思路:用到next_permutation(),细节看注释。
next_permutation、prev_permutation
class Solution {
public:
int nextGreaterElement(int n) {
//转变为string类型,便于调用next_permutation()
string s=to_string(n);
next_permutation(s.begin(),s.end());
//如果转变后的s小于之前的数
if(s<=to_string(n)) return -1;
//将s转变为整数
long long t=0;
for(auto x:s){
t=t*10+x-'0';
}
//如果超过int范围
if(t>INT_MAX) return -1;
return t;
}
};