【发布时间】:2020-06-21 13:05:57
【问题描述】:
给定一个包含 n 个元素的数组,我如何找到范围数 [min(A[i], A[i+1]), max(A[i], A[i+1])]包含给定值 k。对于从零开始的索引,这里 i 介于 0
例如,对于下面的数组,a = 1,b = 3;
6 3 2 8 5
假设 k = 3,它必须在 [min(A[1], A[2]), max(A[1], A[2])] 和 [min(A[2] ], A[3]), 最大(A[2], A[3])]。这里 k=3 出现在 [2, 3] 和 [2, 8] 范围内,所以答案是 2。
如何通过某些预计算在小于线性时间内找到范围计数?
我不需要确切的代码,只需对方法/数据结构进行高级概述即可。
提前致谢!
【问题讨论】:
-
这里 i 位于 a 不是
0 <= i <= n-1吗?a和b是什么? -
我不明白
i lies between a < b < n--a是一个数组,而不是一个整数。而b未知? -
抱歉A是数组,更新问题
-
仍然,a 和 b 是什么?
-
搜索“如何遍历数组 c++”和“如何比较两个元素 c++”和“如何比较一个元素与其他两个元素 c++”
标签: c++ algorithm data-structures