私は最近、インタビューでこの問題に出くわしました。それを解決する最善の方法は何か知りたいと思っていました。質問には、ASCII 文字 '0' から '9' を含む char 配列が与えられ、結果の配列内の ASCII 値のセットが可能な限り低い値を形成するように 1 つのスワップが行われます。入力配列には先行する 0 がなく、結果の配列にも先行するものはありません。
以下に例を示します。char a[] = {'1','0', '9','7','6'}
ソリューション:char b[] = { '1','0', '6', '7', '9'}
もう一つの例:char a[] = {'9','0', '7','6','1'}
ソリューション: char b[] = {'1','0', '7','6','9'}
パフォーマンスの観点から最適なソリューションを探しています。スワップは 1 つしか許可されていないため、ソートは許可されていないと想定しました。私はそれを明確にしませんでした。したがって、1 つのスワップを使用するだけで取得できる最小値を探しています。ソリューションの複雑さも提供していただけると助かります。