蓝桥杯刷题-卡牌-二分

题目链接

用户登录

思路:

从题意出发,发现想直接求出答案,并没有一个很高效的办法,但如果给定我们一个 x  ,让我们去判断能否凑出 x 套牌,这个操作对我们来说并不难。所以我们可以考虑二分答案的做法,既然要二分那肯定得具有两段性,不难理解,如果我们可以凑出x 套牌,那么[ 1 , x − 1 ] 套牌也都是一定可以凑出来的,而并不一定可以凑出大于x 的套牌数。

 那么二分的check判断函数我们该如何书写呢?显然要凑够x套牌,我们需要使得每种类似的牌都有x 张,如果已经当前判断牌的类型的数量已经大于等于x,则不需要使用空白牌补充。如果使用当前类型的牌数加上它最多可加上的空白牌数仍然小于x ,那么此时可以直接返回false了。如果当前牌类型允许补充空白牌的数量足够给我们进行补充到 x ,那么我们让空白牌的数减去需要使用的数量,如果不够用了,那么也返回false,如果可以完成所有的牌的填充,则返回true。另外一个需要注

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值