java Solution
Code


# Code
```java []

class Solution {
    public List<Integer> solveQueries(int[] nums, int[] q) {
        int n=nums.length;
        Map<Integer , Integer> map=new HashMap<>();
        int[] dis=new int[n];
        Arrays.fill(dis ,Integer.MAX_VALUE);
        for(int i=0;i<2*n;i++){
            int inx=i%n;
            if(map.containsKey(nums[inx])){
                int idx=map.get(nums[inx]);
                dis[inx]=Math.min(dis[inx],i-idx);
            }
            map.put(nums[inx],i);
        }
        map.clear();
        for(int i=2*n-1;i>=0;i--){
            int inx=i%n;
            if(map.containsKey(nums[inx])){
                int idx=map.get(nums[inx]);
                dis[inx]=Math.min(dis[inx],idx-i);
            }
            map.put(nums[inx],i);
        }
        List<Integer> ans=new ArrayList<>();
        for(int qu : q){
            if(dis[qu]==Integer.MAX_VALUE || dis[qu]==n){
                ans.add(-1);
            }
            else{
                ans.add(dis[qu]);
            }
        }
        return ans;

    }
}  
```
['Java']