By: Jared Tarbell
SRM583 DIV2 250
ある数字の文字numが与えられた時,一度だけ一文字を交換できる.ただし,先頭に0は来ない.
この時,値が最小になるように文字を交換せよ.
<アルゴリズム>
最大最小を求めるとき,グリーディに値をすべて求められそうなら,求められる値をHashSetやTreeSetに入れるとコーディングしやすい.
また,値をすべて求めてSet系にaddするときは,値を求める段階で,新しいメモリ領域で値を保持する.
最後に,Collections.min(results)やCollections.max(results)で値を返す.
- List系
- ArrayList 配列を扱います。
- LinkedList 配列を扱います。挿入・削除が高速です。
- Vector 配列を扱います。パフォーマンスが悪いため現在ではあまり推奨されない古いクラスです。
- Set系
- HashSet 値の重複を許さない順不同の要素集合を扱います。
- TreeSet 値の重複を許さないソートされたの要素集合を扱います。
- Map系
- HashMap キーと値の組からなる要素の集合を扱います。
- TreeMap キーと値の組からなる要素の集合を扱います。キーでソートされています。
コメント