gpt4 book ai didi

javascript - 超时错误。此代码片段中的性能问题是什么?

转载 作者:行者123 更新时间:2023-12-03 02:56:04 25 4
gpt4 key购买 nike

我最近开始进行一些 Codility 编码测试,到目前为止,我的代码性能几乎每次都为 0%。

这个https://codility.com/programmers/lessons/6-sorting/distinct/是查找数组中不同整数数量的非常简单的代码。

我的代码在语法上是正确的并且可以正常工作,但是我可以做什么来优化性能?

这是我的代码:

function solution(A) {


var res = []
var len = A.length
for(var i=len;i--;){
if(!res.includes(A[i])){
res.push(A[i])
}
}
return res.length
}

The performance errors i'm getting from codility

最佳答案

感谢@Slai 和@le_m 的额外指点。

SET: 从数据结构的 Angular 来看,O(n) 空间复杂度和 O(n*log(n)) 时间复杂度。但似乎 V8 以不同的方式进行设置插入归结为 O(1) ,使得时间复杂度为 O(n)

MAP: O(N) 空间复杂度,但我认为时间复杂度比其他复杂度要低一些,可能是 O(N),因为每个键查找都需要 O(1)

有关 Javascript 集合复杂性的更多信息

Javascript ES6 computational/time complexity of collections

es6 Map and Set complexity, v8 implementation

// USING ES6 SET

// ONE LINER
// console.log((new Set(arr)).length)

// BREAKDOWN
const arr = [1, 2, 3, 2, 1, 4, 1];

var setArr = new Set();

arr.forEach(number => setArr.add(number))

console.log([...setArr])

// USING ES6 MAP
let map = new Map();

arr.forEach(number => map.set(number, "PRESENT"))

console.log([...map.keys()])

关于javascript - 超时错误。此代码片段中的性能问题是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47614449/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com