·【蓝桥】·牌型种数
一道绝妙的递归题目,看完答案后的第一感受是,你根本不懂递归!
题目链接:·【蓝桥】·牌型种数
题目描述
牌型种数
小明被劫持到X赌城,被迫与其他3人玩牌。
一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。
这时,小明脑子里突然冒出一个问题:
如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?
请填写该整数,不要填写任何多余的内容或说明文字。
题目分析
- 题意很简单,52张取13张,只考虑数字,有多少种组合
- 如果构建一颗Dfs的树,取13次,深度就是13,对于每层的抽牌,如何筛选,成为了解题的关键
算法思想
- 换一种思路,52张牌可分为13种,每种最多可选的次数为4
- 只需将13种牌分配完即可(这样树的深度同样为13),每种牌所分配的选择为0、1、2、3、4
- 于是在递归过程中,k(k≤13)控制树的深度;
cnt(cnt≤13)控制所选的牌的个数,每一层递归cnt可增加的选择为0、1、2、3、4
==递归大法好!==
———————越是美妙的算法代码量越小———————
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!