【Leetcode】2591. 将钱分给最多的儿童

文章目录

  • 题目
  • 思路
  • 代码

题目

  1. 将钱分给最多的儿童
    【Leetcode】2591. 将钱分给最多的儿童_第1张图片

思路

1、假设每个孩子都分8美元的差值
2、需要拆一个8美元的孩子给4美元的孩子
3、有一个孩子需要承担多出来的所有钱,让这个孩子来承受这个痛苦
4、不足每个孩子分8美元,在每个孩子分了1元的基础上,尽可能多的分8美元

代码

class Solution {
public:
    int distMoney(int money, int children) {
        if(money < children) return -1;
        int tmp = children*8 - money;
        if(tmp == 4) return children - 2;
        if(tmp < 0 ) return children - 1;
        return (money-children)/7;
    }
};

你可能感兴趣的:(练习题(记录做题想法),leetcode,算法,c++,c语言)