javascript - 在 GenomicRangeQuery Coditlity 挑战中克服时间复杂性的问题
问题描述
我正在执行 GenomicRangeQuery [链接到任务]:https ://app.codility.com/programmers/lessons/5-prefix_sums/genomic_range_query/我得到时间复杂度 O(N * M)。
我不确定究竟是代码的哪一部分导致了它。目前我正在学习时间复杂度,所以我欢迎任何建设性的见解。
这是我的解决方案:
function solution(S, P, Q) {
const factors = {
A: 1,
C: 2,
G: 3,
T: 4
}
const A = S.split("")
const result = []
let prevRangeValues = {};
for(let i = 0; i < P.length; i++) {
const start = P[i]
const end = Q[i] + 1
if (prevRangeValues[`${start}-${end}`] === undefined) {
const section = A.slice(start, end)
prevRange = [start, end]
const smallest = Array.from(new Set(section))
.sort()[0]
result.push(factors[smallest])
prevRangeValues[`${start}-${end}`] = factors[smallest]
} else {
result.push(result[result.length - 1])
}
}
return result
}
解决方案
推荐阅读
- javascript - 如何跟踪我网站上的所有用户活动(如 Chrome DevTools)
- html - 如何在每个文本行旁边显示每个技能栏?
- css - 使用 mixins 的动态保证金值
- java - 如何将加密从 java 转换为 nodejs
- javascript - 为什么代码片段会这样输出?
- mysql - how the sql works by < Or > in a sql about using index
- sql - ROW_NUMBER() 不计入时间戳
- csv - Arduino sscanf 第一次正确解析 CSV 但随后返回垃圾数据或使电路板崩溃
- java - 在Java中获取和修改集合中的对象
- wordpress - 如何停止将外部 http 链接重定向到 WP 页面上的 https