Next Greater Element III LeetCode solution in Java
1class Solution {2public int nextGreaterElement(int n) {3char[] arr = (n + "").toCharArray();45int i = arr.length - 1;6while (i > 0) {7if (arr[i - 1] >= arr[i]) {8i--;9} else {10break;11}12}13if (i == 0) {14return -1;15}1617int idx1 = i - 1;1819int j = arr.length - 1;20while (j > idx1) {21if (arr[j] > arr[idx1]) {22break;23}24j--;25}2627// Swapping28swap(arr, idx1, j);2930// sorting31int left = idx1 + 1;32int right = arr.length - 1;33while (left < right) {34swap(arr, left, right);35left++;36right--;37}3839String result = new String(arr);40long val = Long.parseLong(result);4142return (val > Integer.MAX_VALUE ? -1 : (int) val);43}4445void swap(char[] arr, int i, int j) {46char temp = arr[i];47arr[i] = arr[j];48arr[j] = temp;49}50}