質問は次のとおりです:-
整数のペアとして表される、N個の異なる象の寿命が与えられます。
元。[5,10] [6,15] [2,7]は、1頭の象が5年目から10年目まで生きていたことを意味し、2頭目は6年目から15年目まで生きていました。
あなたは象が最大M年しか生きられないと仮定するかもしれません。(質問の一部ではありませんが、アルゴリズムの複雑さを表すために必要になる場合があります。)
このデータを前提として、象の最大数が住んでいた年を見つけます。関係を任意に解決します。
私はこれに対していくつかのアプローチを試みましたが、素朴なソリューションの複雑さに勝るものはないようです。素朴な解決策は次のとおりです。-
1. Maintain an array(call it ctr).
2. For every set you encounter,
increment all values of ctr in that range.
3. Once you have traversed all sets,
find the index with the highest value in ctr.
複雑さがO(N * M)になることは簡単にわかります。
誰かがより良い解決策を提供できますか?
別の質問は次のとおりです。O(1)時間で値の範囲を変更できるデータ構造はありますか?配列では、k個の要素を変更するには、明らかにO(k)時間が必要です。何か良いですか?