首页 > 代码库 > [leetcode-556-Next Greater Element III]
[leetcode-556-Next Greater Element III]
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]
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。