题解:贪心算法解题,因为自己每次都是要第二多的,所以每次都要让Alice拿最多,Bob拿最少,这样自己拿的才最多。如果按照每次自己拿第二多,Bob拿第三多,自己可能会拿的更少,因为第二轮自己拿的就是第5多,而不让Bob拿第三多,自己第二轮就拿的就是第三多。言简意赅就是 撑死Alice,饿死Bob
static int maxCoins(int[] piles) {
int s=0;
int len= piles.length;
Arrays.sort(piles); //先对硬币组进行排序
int round= len/3; //拿硬币堆的轮数,分好几轮拿
int index=len-2; //从第二多开始拿
for (int i = 0; i <round; i++) {
s+=piles[index]; //求和
index-=2; //每次都拿第二多
}
return s;
}