[leetcode-556-Next Greater Element III]

Posted hellowOOOrld

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[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]的主要内容,如果未能解决你的问题,请参考以下文章

leetcode556—— Next Greater Element III (JAVA)

[LeetCode] 556. Next Greater Element III

Leetcode 556. Next Greater Element III

Calculated padded input size per channel: (3 x 3). Kernel size: (5 x 5). Kernel size can‘t be greate

Shell条件判断

用计算属性来响应改变