public class Solution
extends Object
556 - Next Greater Element III\.
Medium
Given a positive integer `n`, find _the smallest integer which has exactly the same digits existing in the integer_ `n` _and is greater in value than_ `n`. If no such positive integer exists, return `-1`.
**Note** that the returned integer should fit in **32-bit integer** , if there is a valid answer but it does not fit in **32-bit integer** , return `-1`.
**Example 1:**
**Input:** n = 12
**Output:** 21
**Example 2:**
**Input:** n = 21
**Output:** -1
**Constraints:**
* 1 <= n <= 231 - 1