2020阿里实习笔试-扑克牌-DFS
题目描述
今天小强从一副扑克牌里拿出来一叠,其中包括A,2,3,…,10各四张,其中A代表1.他从这一叠中抽出一些牌给小明,并告诉小明每次可以按照下列方式打出一些牌:
- 单牌:一张牌,例如3
- 对子:数字相同的两张牌,例如77
- 顺子:数字连续的五张牌,例如A2345
- 三对:连续三个对子:例如334455
现在小强想知道最少打出多少次牌可以打光手中的牌.
输入描述:
一行是个空格分隔的整数A1,A2,…A10,分别代表牌为A,2,…,10的个数.
0<=A1,A2,…,A10<=4
保证手上至少有一张牌
输出描述:
仅一行一个整数表示答案
示例:
输入:
1 1 1 2 2 2 2 2 1 1
输出
3
说明:
打出三个顺子,分别为:A2345,45678,678910
使用深度优先代码:
public class Main {
public static int min = Integer.MAX_VALUE;
public static boolean check(int[] nums) {
boolean flag = false;
for (int i = 0; i < nums.length; i++) {
if (nums[i] > 0) {
flag = true;
break;
}
}
return flag;
}
public static void dfs