Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 查询数组中的两个整数是否有D的差_Algorithm_Data Structures - Fatal编程技术网

Algorithm 查询数组中的两个整数是否有D的差

Algorithm 查询数组中的两个整数是否有D的差,algorithm,data-structures,Algorithm,Data Structures,这是我遇到的问题:您得到了一个包含$n$整数、$a_I$、$a_2$的列表$a_n$,范围为$1$至$10^9$。您需要找出是否有两个整数$(i,j),(j>=i)$,这样$a_j-a_i=D$,其中$D$的值会随着不同的查询而不断变化$n$的范围从$1$到$10^5$,整数$D$的查询数从$1$到$10^5$。如您所见,$O(Qlog(Q))$解决方案是必需的。我尝试过使用一个段树,甚至是一个持久的,但它似乎不起作用。有人能为这个问题提供一个可能的解决方案吗 编辑:有人能解释一下为什么Late

这是我遇到的问题:您得到了一个包含$n$整数、$a_I$、$a_2$的列表$a_n$,范围为$1$至$10^9$。您需要找出是否有两个整数$(i,j),(j>=i)$,这样$a_j-a_i=D$,其中$D$的值会随着不同的查询而不断变化$n$的范围从$1$到$10^5$,整数$D$的查询数从$1$到$10^5$。如您所见,$O(Qlog(Q))$解决方案是必需的。我尝试过使用一个段树,甚至是一个持久的,但它似乎不起作用。有人能为这个问题提供一个可能的解决方案吗


编辑:有人能解释一下为什么Latex没有出现吗?

你可以通过计算所有可能的n^2差异来进行预处理,并维护其模数的映射或哈希映射,因此对于每个查询,你只需找到给定的范围是否存在。总时间为n^2+(nlogn或n)+(qlogn或q)。

此网站上没有乳胶,您最好将您的数学放在两个反勾之间。``听起来像家庭作业……请回答“听起来像家庭作业”。这个网站不是为同样的目的而设计的,我觉得回答这些问题有点不干净。你不能对列表进行排序,然后在线性时间内沿着列表运行两个指针吗?@Eric(公认不可读)条件是
j>=I
排除了排序。