不能表示为子数组JavaScript之和的最小正值
我们有一个这样的正整数排序数组-
const arr = [1, 3, 6, 10, 11, 15];
我们需要编写一个函数,说findSmallest()要接受一个这样的数组并返回不能表示为该原始数组某个子数组之和的最小正整数。
例如-
对于上面写成2的该数组,是最小的正整数,无法通过求和该原始数组的任何子数组来达到。因此,现在让我们编写此函数的代码。通过对数组进行排序,我们可以在线性时间内实现此问题的解决方案。我们最初认为所需的数字是1,因为1是可以取的最小值。我们将遍历数组,并继续将相应的元素添加到所需的数字中。
如果在任何迭代中,相应的数字恰好大于所需的数字,则意味着我们找到了所需的数字,否则我们将不断进行迭代。
示例
const arr = [1, 3, 6, 10, 11, 15];
const findSmallest = arr => {
let res = 1;
for(let ind = 0; ind < arr.length && arr[ind] <= res; ind++){
res += arr[ind];
}
return res;
};
console.log(findSmallest(arr));输出结果
控制台中的输出将为-
2
热门推荐
2 短祝福语简短暖心
3 圆圆的祝福语简短
5 庆双节祝福语简短
10 奶奶生日感恩祝福语简短
11 结婚祝福语粤语大全简短
12 八十大寿简短祝福语
13 Q穷人结婚祝福语简短
14 男朋友祝福语简短新年
15 修祖屋祝福语简短
16 诗词文案祝福语简短精辟
17 十月简短祝福语
18 简短大气的狗年祝福语