• + 0 comments

    java solution

     public static List<Integer> circularArrayRotation(List<Integer> a, int k, List<Integer> queries) {
            // Write your code here
            int n= a.size();
            k%=n;
            reverse(a,0,n-1);
            reverse(a,0,k-1);
            reverse(a,k,n-1);
            List<Integer> result=new ArrayList<>();
            for (int i = 0; i <queries.size() ; i++) {
                result.add(a.get(queries.get(i)));
            }
            return result;
        }
        private static void reverse(List<Integer> a,int start,int end){
            while (start < end){
                int temp=a.get(start);
                a.set(start,a.get(end));
                a.set(end,temp);
                start++;
                end--;
            }
        }