leetcode

Solution to some Leetcode problems written in C++
git clone git://git.dimitrijedobrota.com/leetcode.git
Log | Files | Refs | README | LICENSE

0556.cpp (693B)


0 class Solution {
1 public:
2 int nextGreaterElement(int n) {
3 string nums = to_string(n);
5 int prev = 0;
6 stack<int> st;
7 for (int i = nums.size() - 1; i >= 0; i--) {
8 if (!st.empty() && nums[i] < nums[st.top()]) {
9 while (!st.empty() && nums[i] < nums[st.top()]) {
10 prev = st.top();
11 st.pop();
12 }
13 swap(nums[i], nums[prev]);
14 reverse(nums.begin() + i + 1, nums.end());
15 break;
16 }
17 st.push(i);
18 }
20 long long res = stoll(nums);
21 return (res > INT_MAX || (int)res == n) ? -1 : (int)res;
22 }
23 };