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); 4 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 } 19 20 long long res = stoll(nums); 21 return (res > INT_MAX || (int)res == n) ? -1 : (int)res; 22 } 23 };