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