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;
        }
  • 相关阅读:
    表相关操作
    表的约束
    windows平台MySQL安装
    网络编程2
    Python元类
    并发编程这个只是占位使用而已
    并发编程2
    并发编程1
    Mac装机神器Homebrew
    基于Django框架开发BBS项目
  • 原文地址:https://www.cnblogs.com/hellowooorld/p/6797467.html
Copyright © 2011-2022 走看看