Java - Rotating array

后端 未结 14 1151

So the goal is to rotate the elements in an array right a times. As an example; if a==2, then array = {0,1,2,3,4} would become

14条回答
  •  时光说笑
    2020-11-27 19:57

    package com.array.orderstatistics;
    
    import java.util.Scanner;
    
    public class ArrayRotation {
    
        public static void main(String[] args) {
            Scanner scan = new Scanner(System.in);
            int n = scan.nextInt();
            int r = scan.nextInt();
            int[] a = new int[n];
            int[] b = new int[n];
            for (int i = 0; i < n; i++) {
                a[i] = scan.nextInt();
            }
            scan.close();
    
            if (r % n == 0) {
                printOriginalArray(a);
            } else {
                r = r % n;
                for (int i = 0; i < n; i++) {
                    b[i] = a[(i + r) < n ? (i + r) : ((i + r) - n)];
                    System.out.print(b[i] + " ");
                }
            }
        }
    
        private static void printOriginalArray(int[] a) {
            for (int i = 0; i < a.length; i++) {
                System.out.print(a[i] + " ");
            }
        }
    
    }
    

提交回复
热议问题