成对和的优化解决方案:Codewars

阿迪亚·米什拉(Aditya Mishra)

我需要帮助来优化问题的解决方案,我已经解决了问题,但是我的代码不足以处理大型数组-codeWars:成对和-问题

这是我的代码-

var sum_pairs=function(e, sum){

var result=null;
var arrLen=e.length;
for(let i=0;i<arrLen-1;i++){
  let nextIndex=e.slice(i+1,arrLen).indexOf(sum-e[i]);
  if(nextIndex>=0){ 
    result=[e[i],e[nextIndex+1+i]];
    arrLen=nextIndex+1+i; 
  }
}
return result;
}

好吧,我知道这不是一个好的解决方案。无论如何,这通过了所有测试用例,但是在遇到大数组时失败了-Codewars上的结果

我想知道如何优化此代码,还想学习编写好的代码的任何技术。

阿里·希塔宁(Ari Hietanen)

一种解决方案是使用Set数据结构存储所有已迭代的数字。然后,我们可以检查每个元素是否有一个总和为的数字s对于插入和搜索,该集合具有平均恒定时间复杂度,从而使算法在时间(和空间)上呈线性关系。

var sum_pairs=function(ints, s){
  if (ints.length < 2) return undefined; //not enough numbers for pair.
  let intSet = new Set()
  intSet.add(ints[0]);
  for (let i=1; i < ints.length; ++i){
    let needed = s-ints[i];
    if (intSet.has(needed)){//check if we have already seen the number needed to complete the pair.
      return [needed,ints[i]];
    }
    intSet.add(ints[i]);//if not insert the number in set and continue.
  }
  return undefined;//No answer found
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PULP优化解决方案未定义

来自分类Dev

如何优化解决方案以获得线性性能以找到直方图的孔总面积?

来自分类Dev

使用NULL替换重复列值的优化解决方案

来自分类Dev

如何优化解决方案以计算Java中的Pronic数

来自分类Dev

bsxfun实现中的最小化解决方案。优化任务

来自分类Dev

OpenBSD下的虚拟化解决方案

来自分类Dev

Codewars解决方案-相互嵌套的函数

来自分类Dev

Web和WPF应用程序的自动化解决方案

来自分类Dev

什么是最快的Linux虚拟化解决方案?

来自分类Dev

什么是最友好的虚拟化解决方案?

来自分类Dev

可以优化该解决方案吗?

来自分类Dev

给定链表的成对交换元素(Java解决方案)

来自分类Dev

升级解决方案和项目

来自分类Dev

分页和$ _post含义的解决方案

来自分类Dev

Json和按解决方案分组

来自分类Dev

分页和$ _post含义的解决方案

来自分类Dev

内连接和回声解决方案

来自分类Dev

空间优化的硬币找零解决方案

来自分类Dev

如何建立一个更优化的解决方案

来自分类Dev

以下优化问题的解决方案是什么?

来自分类Dev

使用Google的线性优化服务输出多个解决方案

来自分类Dev

如何在嵌套优化中返回解决方案?

来自分类Dev

优化在运行期间多次调用解决方案

来自分类Dev

Python:如何编码优化问题的解决方案

来自分类Dev

使用python中的矢量化解决方案计算最大跌幅

来自分类Dev

用等效的矢量化解决方案代替冒号运算符

来自分类Dev

使用nunjucks或其他方法对嵌套变量进行模板化解决方案

来自分类Dev

有免费的虚拟化解决方案可用于“桌面集成”吗?

来自分类Dev

是否有不是来自端口的OpenBSD虚拟化解决方案?

Related 相关文章

热门标签

归档