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

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0