查找X号是否存在于n个和数组中

时间:2019-05-27 02:41:51

标签: javascript algorithm

我想找到x是否存在于下面的数组中。为了在内部找到x号,数组的任何元素都可以指定x号。这基于元素的内部数组,并检查其是否存在。这不像是促销和组合。

pd
  • 示例:如果X = 16,则结果应为[4,6,6] = 16(true)
  • 示例: 如果X = 11,则结果应为[4,7] = 11(true)
  • 示例:如果X = 18 那么结果应该是[4,6,6,2] = 18(true)

1 个答案:

答案 0 :(得分:0)

尚未优化,但可以正常工作:

    function Contains(array, value) {
        const str = array.reduce((p, c) => p + c.toString(), "");
        const fn = function (active, rest, a) {
            const sum = rest.split("").reduce((p, c) => p + Number(c), 0);
            if (sum === value) return true;
            if (!active && !rest) return;
            if (!rest) {
                a.push(active);
            } else {
                if (fn(active + rest[0], rest.slice(1), a) === true) return true;
                if (fn(active, rest.slice(1), a) === true) return true;
            }
            return a;
        }
        const result = fn("", str, []) === true;
        return result === true;
    }
    Contains(array, value)