gpt4 book ai didi

javascript - 使用数组字符串寻找性能可行性

转载 作者:行者123 更新时间:2023-12-01 22:59:21 27 4
gpt4 key购买 nike

这是要求的详细信息:

time = ["09-13", "12-14"]

getResult(time) = false

第一场演出从上午 9 点到下午 1 点。第二场从中午 12 点开始。因此,您将无法完整地看到每场演出。

time = ["07-09", "10-12", "15-19"]

getResult(time) = true

但我无法得到结果。我正在寻找挑战来完成它。有人帮帮我吗?

这是我的尝试:

const getResult = (time) => {
const nums = [];
let pre = 0;
time.map((item,index) => {
item.split('-').map((v,i) => {
nums.push(+v);//converting as number
});
});
const result = nums.map((v,i) => {
if(!i) return;
console.log(v-pre)//but logically this is not works
pre = v;
})
}

//time = ["09-13", "12-14"]; //false
time = ["07-09", "10-12", "15-19"] //true
getResult(time); //should be false

提前致谢。

最佳答案

一旦我们在它们的 - 上拆分值,您的格式就已经可用于直接 >= 比较。所以我们可以简单地对值进行排序,然后检查在第一个之后的每种情况下,开始部分(- 之前)至少与结束部分( 之后)一样大-) 的前一个值。它可能看起来像这样:

const feasible = (times) => [... times] 
.sort ()
.every ((t, i, a) => i == 0 || t .split ('-') [0] >= a [i - 1] .split ('-') [1])


console .log (feasible (["09-13", "12-14"]))
console .log (feasible (["07-09", "10-12", "15-19"]))

我们使用 i == 0 || 来简单地避免测试第一个排序值。

这涉及将每个值拆分两次(好吧,除了第一个。)如果这种低效率困扰您,我们可以通过拆分它们并保存结果来解决它(使用更多内存;总是需要权衡!):

const feasible = (times) => [... times] 
.sort ()
.map (s => s .split ('-'))
.every ((t, i, a) => i == 0 || t [0] >= a [i - 1] [1])

关于javascript - 使用数组字符串寻找性能可行性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72224876/

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