これは最近インタビューで友人に尋ねられましたが、単純な O(n 3 )以外の解決策はわかりません。
より良いアルゴリズムはありますか?
問題は、合計が指定された合計 S 以下である整数配列内のすべてのトリプレットを見つけることです。
注: パフォーマンスが O(n 2arr[i] + arr[j] + arr[k] = S
log n) の SO で他のこのような問題を見たことがありますが、それらはすべて、このようなトリプレットが 1 つ存在するかどうかのみをチェックする場所や場所など、この問題のより簡単なバージョンを解決していました。
私の質問は、そのようなすべてi,j,k
を見つけることですarr[]
arr[i] + arr[j] + arr[k] <= S