• 556. 下一个更大元素 III


    给你一个正整数 n ,请你找出符合条件的最小整数,其由重新排列 n 中存在的每位数字组成,并且其值大于 n 。如果不存在这样的正整数,则返回 -1 。

    注意 ,返回的整数应当是一个 32 位整数 ,如果存在满足题意的答案,但不是 32 位整数 ,同样返回 -1 。

    示例 1:

    输入:n = 12
    输出:21
    

    示例 2:

    输入:n = 21
    输出:-1
    

    提示:

    • 1 <= n <= 231 - 1

     

    int nextGreaterElement(int n) {
        vectorvec;
        int m = 0;
        int index = -1;
        while (n>0)
        {
            m = n % 10;
            n = n / 10;
            if (vec.empty())
            {
                vec.push_back(m);
                continue;
            }
            vec.push_back(m);
            sort(vec.begin(), vec.end());
            for (int i = 0; i < vec.size(); i++)
            {
                if (vec[i] > m)
                {
                    index = i;
                    break;
                }
            }
            if (index != -1)
            {
                break;
            }
        }

        long long ret = -1;
        if (index != -1)
        {
            ret = n * 10 + vec[index];
            for (int i = 0; i < vec.size(); i++)
            {
                if (index == i)
                {
                    continue;
                }
                ret = ret * 10 + vec[i];
            }
        }
        if (ret > 2147483647)
        {
            return -1;
        }
        return ret;
    }

  • 相关阅读:
    民宿酒店景区污水处理生产厂家整套设备
    数仓Hive和分布式计算引擎Spark多整合方式实战和调优方向
    MotionLayout的使用
    Prometheus(三)node-exporter
    idea2021.2.3安装炫酷插件activate-power-mode失败解决方案
    Halcon 从基础到精通-01- 基本概念
    C. Orac and LCM(gcd与lcm的性质)
    MySQL事务基本操作(方式2)
    node教程(四)Mongodb+mongoose
    Spring Cloud 与dubbo微服务架构选型
  • 原文地址:https://blog.csdn.net/yinhua405/article/details/127993068