繁体   English   中英

以下代码的时间复杂度是多少? (JavaScript的)

[英]What is the time-complexity for the following code? (javascript)

有人可以解释以下代码的时间和空间复杂度,并告诉我数学吗?

let genAnagrams = (word, anagram = '', results = []) => {
  if (!word) {
    results.push(anagram);
    return;
  }
  for (let i = 0; i < word.length; i++) {
    genAnagrams(word.slice(0, i) + word.slice(i + 1), anagram + word[i], results);
  }
  return [...new Set(results)];
};

我知道slice在每次迭代中都会增加线性时间复杂度,那么这将是二次的吗? 这是O(n!*(n-1)!)吗? 还是O(n!)? 或O(n * n!)?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM