0

たとえば、n 個の要素の中から要素x1,x2..,xn.を選択しなければならないと言いました。つまり、選択した要素を、合計が最小になるようにします。'k'y1,y2,y3,..yk|y1-y2| + |y2-y3| + |y3-y1| + ...

言い換えれば、これらのK要素間の相互差の合計は、他の要素の選択よりも小さいか等しくなければなりませんK

要素x1,x2..xnはソートされておらず、重複が含まれている可能性があります。

これに対する最も基本的な解決策があります。つまり、配列をソートし、ソートされた配列を zi = 0 to i = n-k-1とし、そこから k 個の要素のウィンドウをスライドさせ、それらがソートされると、相互差値の合計は次の一般的な形式になります。

(k-1)*z[0] + (k-3)*z[1] + (k-5)*z[2] + ........  -(k-1)*z[k-1].

最小の相互差を見つけると、答えが得られます。

コードの残りの部分はそれのみを入力として受け取るため、相互差の最小合計を取得するだけで十分です。

これを行うには、最適化するか、より良いアルゴリズムを見つける必要があります。ありがとう。

4

0 に答える 0