题目链接
思路:
从题意出发,发现想直接求出答案,并没有一个很高效的办法,但如果给定我们一个 x ,让我们去判断能否凑出 x 套牌,这个操作对我们来说并不难。所以我们可以考虑二分答案的做法,既然要二分那肯定得具有两段性,不难理解,如果我们可以凑出x 套牌,那么[ 1 , x − 1 ] 套牌也都是一定可以凑出来的,而并不一定可以凑出大于x 的套牌数。
那么二分的check判断函数我们该如何书写呢?显然要凑够x套牌,我们需要使得每种类似的牌都有x 张,如果已经当前判断牌的类型的数量已经大于等于x,则不需要使用空白牌补充。如果使用当前类型的牌数加上它最多可加上的空白牌数仍然小于x ,那么此时可以直接返回false了。如果当前牌类型允许补充空白牌的数量足够给我们进行补充到 x ,那么我们让空白牌的数减去需要使用的数量,如果不够用了,那么也返回false,如果可以完成所有的牌的填充,则返回true。另外一个需要注