3
int[] maxbob = new int[12];5
public int[] maximumBobPoints(int numArrows, int[] aliceArrows) {6
int[] bob = new int[12];7
calculate(aliceArrows, bob, 11, numArrows, 0); // Start with max point that is 1111
public void calculate(int[] alice, int[] bob, int index, int remainArr, int point) {12
if (index < 0 || remainArr <= 0) {13
if (remainArr > 0) bob[0] += remainArr;14
if (point > bobPoint) { // Update the max points and result output20
// part 1: assign 1 more arrow than alice21
if (remainArr >= alice[index] + 1) {22
bob[index] = alice[index] + 1;23
calculate(alice, bob, index - 1, remainArr - (alice[index] + 1), point + index);26
// part 2: assign no arrow and move to next point27
calculate(alice, bob, index - 1, remainArr, point);