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

#华为笔试#
全部评论

相关推荐

04-01 16:02
已编辑
武汉工程大学 Java
牛客98843461...:处女面??我还种马面渣男面处男面呢
点赞 评论 收藏
分享
在打卡的大老虎很想潜...:你在找实习,没啥实习经历,技术栈放前面,项目多就分两页写,太紧凑了,项目你最多写两个,讲清楚就行,项目背景。用到的技术栈、亮点、难点如何解决,人工智能进面太难了,需求少。你可以加最新大模型的东西
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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