小编Ash*_*ser的帖子

尝试优化代码以删除嵌套循环或使其更高效

  • 我的一个朋友采用从1到n的数字序列(其中n> 0)

  • 在该序列中,他选择两个数字a和b

  • 他说a和b的乘积应等于序列中所有数字的和,不包括a和b

  • 给定数字n,您能告诉我他从序列中排除的数字吗?

已经从Code Wars找到了该Kata的解决方案,但是当我运行它时,它在编辑器中超时(12秒后);还有什么想法我应该如何进一步优化嵌套的for循环或删除它?

function removeNb(n) {
  var nArray = [];
  var sum = 0;
  var answersArray = [];
  for (let i = 1; i <= n; i++) {
    nArray.push(n - (n - i));
    sum += i;
  }
  var length = nArray.length;
  for (let i = Math.round(n / 2); i < length; i++) {
    for (let y = Math.round(n / 2); y < length; y++) {
      if (i != y) {
        if (i * y === sum …
Run Code Online (Sandbox Code Playgroud)

javascript algorithm optimization nested-loops

8
推荐指数
2
解决办法
188
查看次数