this質問には、指定された範囲の範囲のリストの重複を見つけるアルゴリズムが含まれていました。しかし、私の状況ではn^2
ペアのフォームの範囲にグループ化するとn
の整数のリストがあります。例えば、array[i]
とarray[j]
を整数配列から取ると、(array[i]-array[j],array[i]+array[j])
は範囲を作る。しかし、提案されたアルゴリズムを実装するためには、解はメモリの複雑さがO(n^2)
である。それはさらに(メモリの点で)最適化できますか?範囲内の重複を見つけるためのより効率的なアルゴリズムアルゴリズム
例: Iが大きい範囲(l,r)
を有し、そしてIはranges.For例のリストのうちの少なくともいずれかに(l,r)
位置にどのように多くの整数を見つける必要があり、指定された整数配列は{1,2,3}
あります。可能な範囲はすべて(2-1,1+2), (3-1,1+3), (3-2,3+2)
です。 (l,r)
が(2,7)
であるとします。その後、少なくともには(2,5)
が存在するため、答えがあります。
@ user3386109 .....私はより大きい範囲の '(l、r)'を持っています。範囲のリストの少なくともいずれかに、(l、r)の整数がいくつあるか調べなければなりません。範囲のリストは、問題の方法で与えられた整数配列から計算できます。 – yobro97
@ user3386109 ....例えば、与えられた整数配列は '{1,2,3}'です。したがって、すべての可能な範囲は '(2-1,1 + 2)、(3-1,1 + 3)、(3-2,3 + 2)'です。 '(l、r)'が '(2,7)'であるとします。そして '(2,5)'が少なくとも一つに存在するので '4'が答えです。 – yobro97