题解 | #24点游戏算法#leetcode 679 递归

24点游戏算法

https://www.nowcoder.com/practice/fbc417f314f745b1978fc751a54ac8cb

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

rl.on('line', function(line){
    let nums = line.split(' ').map(e=>Number(e));
    let res = judgePoint24(nums);
    console.log(res);
});

function judgePoint24(nums){
   let len = nums.length;
   if(len === 1){
     return Math.abs(nums[0] - 24) < 0.000000001;
   } 
   let isValid = false;
   for(let i=0; i<len; i++){
       for(let j=i+1; j<len; j++){
           const n1 = nums[i];
           const n2 = nums[j];
           const newNums = [];
           for(let k=0; k<len; k++){
               if(k !== i && k !== j){
                  newNums.push(nums[k]);
               }
           }
           isValid = isValid || judgePoint24([...newNums, n1 + n2]);
           isValid = isValid || judgePoint24([...newNums, n1 - n2]);
           isValid = isValid || judgePoint24([...newNums, n2 - n1]);
           isValid = isValid || judgePoint24([...newNums, n1 * n2]);
           if(n1 !== 0){
              isValid = isValid || judgePoint24([...newNums, n2 / n1]);
           }
           if(n2 !== 0){
               isValid = isValid || judgePoint24([...newNums, n1 / n2]);
           }
           
           if(isValid){
               return true;
           }
       }
   }
    return false;
}

#华为笔试#
全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 17:10
什么素质,我请问呢,要掉小珍珠了。。。又憋屈又生气
Steven267:这不喷回去?花钱是大爷,记住这个道理
点赞 评论 收藏
分享
Twilight_m...:经典我朋友XXXX起手,这是那种经典的不知道目前行情搁那儿胡编乱造瞎指导的中年人,不用理这种**
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务