gpt4 book ai didi

arrays - 包含所有元素而不使用数组的最短子数组?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:10:10 25 4
gpt4 key购买 nike

问题:找到包含所有元素的最短子数组的长度示例:1 2 2 3 2 2 1 3答案:3

我读到过,解决此问题的最佳方法是使用滑动窗口方法。但是这种方法需要使用数组。有没有其他不需要通过存储每个元素的出现次数来使用数组的有效方法? (我想通过在 ML 中编写它来使用这种没有数组的方法)

最佳答案

我假设您想避免使用数组的原因是您希望编写惯用 ML 代码,因此更愿意使用纯函数数据结构而不是可变数组?

如果是这样,那么您可以使用 purely functional red-black tree对于“滑动窗口”方法,几乎​​与使用数组的方式完全相同;唯一的区别是:

  • 不是 O(1) 次查找,而是 O(log m) 次查找,其中 m是不同元素的数量。
  • 不是 O(1) 个突变,而是 O(log m) 个转换,其中转换返回 map (共享其大部分节点)。

关于arrays - 包含所有元素而不使用数组的最短子数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55379954/

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