美文网首页
556. 下一个更大元素 III

556. 下一个更大元素 III

作者: 来到了没有知识的荒原 | 来源:发表于2022-07-11 12:23 被阅读0次

556. 下一个更大元素 III

class Solution {
public:
    int nextGreaterElement(int n) {
        string s = to_string(n);
        bool desc = true;
        int m = s.size();
        for(int i = 0; i < m - 1; i++) {
            if(s[i] < s[i+1])desc=false;
        }
        if(desc) return -1;

        int j, k;
        for(int i = m - 1; i>=0; i--) {
            if(s[i-1] < s[i]) {
                j = i - 1;
                break;
            }
        }
        for(int i = m - 1; i>=0 ;i--) {
            if(s[i] > s[j]) {
                swap(s[j], s[i]);
                sort(s.begin() + j + 1, s.end());
                break;
            }
        }
        long long a = atoll(s.c_str());
        if(a > INT_MAX) return -1;
        return a;
    }
};

相关文章

  • 556. 下一个更大元素 III

    556. 下一个更大元素 III[https://leetcode.cn/problems/next-greate...

  • 556. 下一个更大元素 III

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

  • 栈-N1019-链表中的下一个更大节点

    题目 概述:给定一个链表,要你求该链表每个元素的下一更大元素,如果不存在下一个更大元素则下一个更大元素为0 输入:...

  • 单调栈

    496. 下一个更大元素 I 503. 下一个更大元素 II[https://leetcode-cn.com/pr...

  • 下一个更大元素

    给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更...

  • 556. Next Greater Element III

    Given a positive 32-bit integer n, you need to find the s...

  • 下一个更大元素 II(LeetCode 503)

    题目 给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下...

  • 栈2

    继续刷栈!!! leetcode 496 下一个更大的元素I 维护一个栈,当下一个元素比栈顶大时,出栈直到栈顶大于...

  • 单调栈

    leetcode 496 503 556 581 84 85 滑动窗口最大值 下一个更大的元素

  • 2021.3.6每日一题

    503. 下一个更大元素 II[https://leetcode-cn.com/problems/next-gre...

网友评论

      本文标题:556. 下一个更大元素 III

      本文链接:https://www.haomeiwen.com/subject/jbgvbrtx.html