题解 | #24点游戏算法#

24点游戏算法

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

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void (async function () {
    // Write your code here
    while ((line = await readline())) {
        let tokens = line.split(" ").map((item) => +item);

        // console.log(tokens);
        let colorList = new Array(tokens.length).fill(0);

        function dfs(sum, count) {
            if (count == 3) {
                let fi = colorList.findIndex((item) => {
                    return item == 0;
                });
                return tokens[fi] == sum;
            }
            for (let i = 0; i < tokens.length; i++) {
                if (colorList[i] == 1) {
                    continue;
                }
                let oList = [
                    sum + tokens[i],
                    sum - tokens[i],
                    sum * tokens[i],
                    sum / tokens[i],
                ];
                for (let j = 0; j < oList.length; j++) {
                    let subSum=oList[j]
                    colorList[i] = 1;
                    valid = dfs(subSum, count + 1);
                    if (valid) {
                        return true;
                    } 
                    colorList[i] = 0;
                    
                }
            }

            return false;
        }
        let res = dfs(24, 0);
        console.log(res);
        // tokens  4个元素  24   +- */
        // 3个元素 sum */+- 24
        // 24 */+-  4个结果  dfs(subSum,subList)==true
        // 不能重复 +1  染色实现 0 1  color[0]=1
    }
})();

#华为#
全部评论

相关推荐

只有一个苍穹外卖外加正在看黑马点评,可以找小厂实习吗,还有我的简历有什么大问题吗
Java抽象小篮子:感觉有点熟悉,问题1是学历,2是没实习经历,3是专业技能写得太少太少了(怎么写可以看我置顶帖),4是仅这一个项目找实习不够看。拷打完毕,简历怎么写可以看我置顶帖子
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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