本文主要是介绍力扣 1561. 你可以获得的最大硬币数目——贪心,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题解:贪心算法解题,因为自己每次都是要第二多的,所以每次都要让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;}
这篇关于力扣 1561. 你可以获得的最大硬币数目——贪心的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!