1class Solution {2public int bestRotation(int[] nums) {3final int size = nums.length;4int[] rsc = new int[size];5for (int i = 0; i < size - 1; i++) {6int value = nums[i];7int downPos = (i + 1 + size - value) % size;8rsc[downPos]--;9}10int value = nums[size - 1];11if (value != 0) rsc[size - value]--;12int bestk = 0;13int bestscore = rsc[0];14int score = rsc[0];15for (int i = 1; i < nums.length; i++) {16score += rsc[i] + 1;17if (score > bestscore) {18bestk = i;19bestscore = score;20}21}22return bestk;23}24}