この問題のヒントを教えていただけますか?昇順でソートされたintのベクトルがあり、2つの要素間の距離はv [i +1]-v[i]です。たとえば、v [] = {0、5、7、8、10}、5と0の間の距離は5、7、5は2などです。NB値を削除したい(NBは削除したい値の数です) )このベクトルの(0または10を削除できないため、NBは最大3になる可能性があります)、2つの要素間の距離が最大になります。この例では、最小距離は7〜8です... 1つの要素のみを削除する場合(NB = 1)、最小距離が2(5〜7の距離)になるよりも8を削除します。
私は次のような構造を作成しました:(0,5、diff 5)(5,7 diff 2)(7,8 diff 1)(8,10 diff 2)次に、これをdiffで昇順に並べ替え、NBが0ではない10または0でない場合は、ペアから2番目の要素を削除し、その要素を持つ次のペアを見つけ、その要素を最初に見つけたときにペアの最初の要素に置き換えてから、差分を更新します...この例では、8を削除すると、結果は(5,7 diff 2)(7,10 diff 3)(0,5、diff 5)になります。要素をもう一度検索する必要があるため、これは非常に非効率的だと思います。これを効率的にする方法を教えてもらえますか?