私はインタビューの質問に遭遇しました:講堂での席の割り当て
講堂にはイベントがあり、講堂の所要量はNxMです。 予約された人のチケットのすべてのグループとすべてのチケットが予約されていますので、グループ分けの最小数など、すべての人に座席番号を割り当てる必要があります。
基本的に2-D配列が与えられており、いくつかのサイズのグループがあります(異なるグループは異なるサイズかもしれません).Arrayは最小数のグループ分割で完全に埋められる必要があります。
ブルートフォース再帰的なアプローチは、次のとおりです。最初のグループ、次に2番目のグループなどを配置します。最小の分割で配置を見つけるためにこの配置を行います。
私が見つけた1つの効率的な解決策は、サブセットサム問題を使用していました。 https://en.wikipedia.org/wiki/Subset_sum_problem
この問題を解決するためにサブセットサム問題をどのように使用できるか理解できませんでした。 どうすればこの問題に近づくことができますか。私はコードを探していません。ちょうど擬似コードまたはアルゴリズムで十分です。
https://en.wikipedia.org/wiki/Knapsack_problem#Multi-Dimensional_knapsack_problem提供したリンクからこれを見つけました。それはかなり密接に関連しているように見える –
サブセット合計を使って効率的な解決策を見つけたとしたら、あなたは問題へのアプローチ方法を尋ねる。なぜあなたはすでにあなたの質問に答えた解決策はありませんか? –
私はサブセットsum.Butを使用して解決できるいくつかのコメントを1つのフォーラムを見つけましたサブセットの合計問題を使用して解決することができませんでした – geeky