zoukankan      html  css  js  c++  java
  • [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.

    Example 1:

    Input: 12
    Output: 21 

    Example 2:

    Input: 21
    Output: -1

    思路:

    首先,将整型数字转换成字符串,然后利用stl提供的next_permutation()函数,求字符的全排列,对应的字符串再转换回整型,随时记录大小即可。

    int nextGreaterElement2(int n) {
            char buf[80];
            sprintf(buf, "%d", n);
            string s = buf;
            puts(s.data());
            sort(s.begin(), s.end());
            long long ans = INT_MAX + 1LL;
            do {
                long long tmp = atoll(s.c_str());
                if (tmp > n) {
                    ans = min(ans, tmp);
                }
            } while (next_permutation(s.begin(), s.end()));
            return ans <= INT_MAX ? ans : -1;
        }
  • 相关阅读:
    java-工具代码
    idea-常用快捷键
    idea-环境配置
    mysql-常用命令
    Java IO流学习总结
    Java类加载机制
    Struts2标签 %{ } %{# }详解
    EL语法
    SQL语句
    在servlet转向jsp页面的路径问题
  • 原文地址:https://www.cnblogs.com/hellowooorld/p/6797467.html
Copyright © 2011-2022 走看看