考虑数组1 2 3 5 5
[L R D]=[1 5 1]
,输出为3 [1 1 1]
,输出为1 这个问题在0<Q<10^6
处也有Q个查询,因此蛮力不起作用!
注意:索引从1开始
注2:D代表AP的共同差异
答案 0 :(得分:0)
可以简化您的问题,以找到具有给定共同差异的最长算术级数,数组= [L, R]
和size n = R - L + 1
然后您可以从Geeksforgeeks
查找解决方案天真的方法:为每个元素计算它可以形成的最长AP的长度,并在其中打印最大的AP。它涉及 O(n ^ 2)时间复杂度。
一种有效的方法是使用哈希。
创建一个映射,其中密钥是AP及其启动元素 value是该AP中的元素数。这个想法是更新 键“ a”(位于索引i且起始元素不是 只要索引j(> i)的元素可以 位于“ a”的AP中(作为起始元素)。然后我们打印 地图中所有值中的最大值。