我想找到某个范围内的最低值。
我每次都必须迭代数组还是有任何动态方法?
假设我有输入数组:
index: 0 1 2 3 4 5 6 7
value: 1 4 6 1 6 7 2 3
然后我必须选择范围 (包括)中最小的。例如:
min(0,7) = 1
min(0,2) = 1
min(4,6) = 2
min(1,2) = 4
我对最快的解决方案感兴趣,最好在恒定的时间内得到结果。
数组在此期间不会改变。
如果您要对同一组数字执行多个查询,那么您将需要构造一个笛卡尔树 http://en.wikipedia.org/wiki/Cartesian_tree.
笛卡尔树可以用作范围最小查询的有效数据结构的一部分,范围搜索问题涉及要求原始序列的连续子序列中的最小值的查询。
正如文章所说,查询可以在恒定时间内执行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)