石子的最大得分(medium)"/>
[贪心][找规律]1753:移除石子的最大得分(medium)
题目:
题解:
- 贪心法,思路在代码里面。
代码如下:
class Solution {
public:// 贪心猜想:假设a<=b<=c// 1)a+b<c,那么a+b必定可以消耗完,剩余c里面还有多余的,a+b为拿走的最多石子了// 2)a+b>=c,那么我们每次选2个最大的进行拿走,即先消耗c和b,然后等c消耗和a差不多大时,在消耗c和a,最后柱子中只会剩下1个或0个// a+b+c 为奇数,则最后还剩下一个;为偶数时,则最后柱子全为空int maximumScore(int a, int b, int c) {int d[]={a,b,c};sort(d,d+3);// x 表示最后还剩下的石子数int x=0;if(d[0]+d[1]<d[2])x=d[2]-(d[1]+d[0]);else x=(a+b+c)%2;// 得分就是拿走的石子数除以2return (a+b+c-x)/2;}
};
更多推荐
[贪心][找规律]1753:移除石子的最大得分(medium)
发布评论