题解 | #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 } })();#华为#