题解 | #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;
}

#华为笔试#
全部评论

相关推荐

程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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