leetcode679(24点游戏:回溯法)

你有 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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值