1
给定整数K和一个N个整数列表。我们需要在列表中找到所有可能的最短间隔,使得每个间隔中整数的乘积是K的倍数。查找以K为因子的最小长度间隔
示例:设N = 6,K = 5,数组为[2,9 ,4,3,16],则此处的最小间隔长度为2,其乘积为K.的倍数。
区间:[1,2],[2,3],[3,4],[4,5 ]。
现在我需要找到最小长度和所有间隔开始和结束。
但问题是约束很大,1≤N≤2×10 ^5,1≤K≤10^ 17,数组元素达到10^15。
你显然缺少一些信息/限制。假设k = 8,数组中的所有数字都是2.那么任何3个组合(2 * 2 * 2)都可以工作,并且至少需要O(n^3)时间才能打印超时。也许整数是独一无二的? – xashru
列表中没有任何整数是K = 5的倍数 - 那么如何获得产品为5的倍数的列表的子区间? –
我认为这只是一个坏例子。如果K是素数,它必须出现在列表中,并且最小长度间隔的长度为1.如果K是9,那么连续两个3会得到一个间隔。 – user1666959