你有 4 张写有 1 到 9 数字的牌。你需要判断是否能通过 *,/,+,-,( ) 的运算得到 24。
输入: [4, 1, 8, 7]
输出: True
解释: (8-4) * (7-1) = 24
题解:穷举法,无脑列出所有可能的情况,一个一个判断结果是否等于24,具体的方式是通过回溯算法,利用递归实现所有可能的情况的复现——每一次计算的形式都是:数字A 符号B 数字C = 数字D,第一次计算时,可选数字一共有4个,两个数字A、B一共有43=12种情况,符号共有四种,所以第一次计算共有124=48种情况,第二次计算时可选数字有三个(第一次计算所得结果包含在内),符号依旧是4个,同理,第二次计算有324=24种情况,依次类推,一共有9216种情况。
class Solution {
static final int ADD=0;
static final int SUBTRACT=1;
static final int MULTIPLY=2;
static final int DIVISION=3;
boolean res=false;
static final double ERROR =0.0000001;
public boolean judgePoint24(int[] nums) {
double[] arg=new double