LeetCode556. Next Greater Element III

来源:互联网 发布:皮卡超人升级数据 编辑:程序博客网 时间:2024/05/18 02:42

LeetCode556. 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 integern and is greater in value than n. If no such positive 32-bit integer exists, you need to return -1.

Example 1:

Input: 12Output: 21

Example 2:

Input: 21Output: -1

题意分析:这道题和其实和31. Next Permutation差不多,都是考的同样的考点,所以也没啥特别的分析,有兴趣的话可以去看下31题的leetcode。

代码:
class Solution {public:int nextGreaterElement(int n) {string str = to_string(n);string tmp = str;next_permutation(str.begin(),str.end());if (tmp >= str) {return -1;}else {return stringtoint(str);}}int stringtoint(string str) {int size = str.size() - 1,sum = 0;for (int i = 0; i < str.size(); i++) {sum += pow(10, size--)*(str[i] - '0');if (sum < 0) return -1;}return sum;}};


原创粉丝点击