私たちはN個の数字の配列を持っています。すべての数字は1-kの間です。配列内で最も頻繁な三つ組を見つける
問題は、最も頻繁なトリプレットを見つける最良の方法を見つける方法です。
問題への私のアプローチがある:
セイ入力トリプレットのカウント用
{4、3、2、1、4、3、2、1}のように最初の検索である場合( 1、2、3)は、配列の2番目の要素から配列の最後まで開始します。今度はカウントを1にします。 {2、3、4}で始まり、配列を検索してください。
各トリプレットについて、アレイをスキャンしてカウントを見つけます。このように、n-1回アレイを実行します。
この方法では、アルゴリズムはn * n時間の複雑さの順に実行されます。何か良い方法がありますか?
この問題はありますか?
「トリプレット」の定義は何ですか?順番に3つの数字がありますか、連続する3つの整数だけですか? '3,4,1'はトリプレットですか? –
予想された空間の複雑さは何ですか? – jackalope
あなたはあなたが必要とする「トリプレット」を知っていますか、それを見つけるためにアルゴを意図していますか? – bonCodigo