问题:找到包含所有元素的最短子数组的长度 示例:1 2 2 3 2 2 1 3 答案:3
我已经读到,解决此问题的最佳方法是使用滑动窗口方法。但是这种方法需要使用数组。是否有任何其他有效的方法不需要通过存储每个元素的出现次数来使用数组? (我想通过在ML中编写这种方法来使用没有数组的方法)
答案 0 :(得分:1)
我假设您要避免使用数组的原因是您要编写 idiomatic ML代码,因此宁愿使用纯函数数据结构而不是可变数组? >
如果是这样,则可以将purely functional red-black tree用于“滑动窗口”方法,其方式几乎与使用数组相同。唯一的区别是:
答案 1 :(得分:-3)
我不了解您的数组问题。您没有指定要使用的ML系列语言,但是Ocaml(我最喜欢的语言)当然具有数组。如果您出于某种宗教原因确实不喜欢数组,则可以始终使用带有整数键的Map,该键的作用与数组相同,但速度要慢得多。