1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| class Solution { public int minMirrorPairDistance(int[] nums) { Map<Integer, Integer> map = new HashMap<>(); int ans = Integer.MAX_VALUE; for (int i = nums.length - 1; i >= 0; i--) { int reverseNum = reverse(nums[i]); if (map.containsKey(reverseNum)) { ans = Math.min(ans, map.get(reverseNum) - i); } map.put(nums[i], i); } return ans == Integer.MAX_VALUE ? -1 : ans; }
private int reverse(int num) { int ret = 0; while (num > 0) { ret = ret * 10 + num % 10; num /= 10; } return ret; } }
|