【发布时间】:2021-01-08 05:25:38
【问题描述】:
你已经给出了整数数组
例如 5,3,4,3,9,4,4,6,8,6,5,7
你必须找到最大的区间 (i,j),使得 i 和 j 之间的所有数字都大于等于 i 处的数字但小于等于 j 处的数字。数字不需要按排序顺序。 i 处的数字也应小于 j 处的数字。
在上面的例子中有两个这样的间隔 3,4,3,9 和 4,4,6,8
在 3,4,3,9 - 中间两个数字 (4,3) 大于等于起始数字 (3) 但小于等于结束数字 (9) 。起始编号 (3) 也小于结束编号 (9)。
在 4,4,6,8 中 - 中间两个数字 (4,6) 大于等于起始数字 (4) 但小于等于结束数字 (8)。起始编号(4)也小于结束编号(8)。
解决这个问题的一种方法是检查所有大小为 n 的区间,然后是大小 n-1 ,依此类推,直到我们得到这样的区间。但我希望通过划分或征服/DP/或其他一些方法来实现高效的算法
【问题讨论】:
-
对不起,3不大于3,等于它。与 4 和 4 相同。
-
请说明确切要求。因为,根据你的例子,“大于”也可以是“等于”,也许 A[i] 也可以“等于”A[j]?
-
输入
[2, 2, 2, 2, 2]的解决方法是什么? -
非常感谢。是的,它可以大于等于和小于等于。上述输入的答案应该是 2,2,2,2,2
标签: algorithm