标签:pilesSize 硬币 int Leetcode1561 qsort index ans 数目
Every day a leetcode
题目来源:1561. 你可以获得的最大硬币数目
解法:贪心
每一次拿硬币,我们只能拿第二多的。
根据贪心的思想,要使我们拿到的硬币数最大。
先将硬币堆从小到大排序。
每一次分配,alice拿走最大的,我们拿走第二大的,bob拿走最小的,这样一来,剩余的硬币堆是最大的,我们能拿到的硬币数也是最多的。
代码:
int cmpfunc(const void *a, const void *b)
{
return (*(int*)a-*(int*)b);
}
int maxCoins(int* piles, int pilesSize){
int ans=0;
qsort(piles,pilesSize,sizeof(int),cmpfunc);
int count=pilesSize/3;
int index=pilesSize-2;
while(count--)
{
ans+=piles[index];
index-=2;
}
return ans;
}
结果:
关于qsort
qsort函数是C语言编译器函数库自带的排序函数。
详情请见:qsort() | 菜鸟教程
标签:pilesSize,硬币,int,Leetcode1561,qsort,index,ans,数目 来源: https://blog.csdn.net/ProgramNovice/article/details/123136228
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。