安全offer32を証明する:アレイに配置最小数

1つのタイトル説明

  正の整数のアレイ、一緒にスプライスされた番号に配置された全ての数字の配列を入力し、スプライスは、一つ最小すべての番号を印刷することができます。3,32,321入力アレイは} {例えば、3つの数の最小数は321323に配置することができる印刷します。

2つのアイデアや方法

  デジタルステッチint型に起因して、int型のクロスボーダーの問題にそこに来るので、話題は文字列を返さ; //(降順)<bを返します;主に、配列をソート> Bを返すために、比較アルゴリズムを開発(小規模から大規模まで)。たとえば、 "3" と "123"、 "3123"> "1233"、それはfalseを返します。

  MN <nmの場合は数m、nおよびMNのNMステッチが、その後MがNの前面にあるべきである場合、Mは、Mn = nmの場合、我々は、このケースを定義するn個未満である、我々は、nに等しいMを定義します。MNビットとNmが同じで、そうしなければならないので、缶の大きさのみに応じてその大きさの比較ルール列比較。

3 C ++コアコード

1  クラスソリューション{
 2  公共3      静的 ブール CMP(INT A、INT B)
 4      {
 5           A = to_stringに(A)+ (B)をTO_STRING。
6           B = to_stringに(B)+ (A)TO_STRING。
7          リターン A < B。
8      }
 9      ストリング PrintMinNumber(ベクトル< INT > 番号){
 10          INT LEN = numbers.size()。
11          であれば(LEN == 0 12             リターン 「」;
13          ソート(numbers.begin()、numbers.end()、CMP)。
14          結果= "" ;
15          のためには、int型 i = 0 ; iがLEN <I ++は16          {
 17              結果+ = to_stringに(番号[i])とします。
18          }
 19          リターン結果。
20      }
 21 }。
コードの表示

参考資料

https://blog.csdn.net/sz793919425/article/details/98208092

おすすめ

転載: www.cnblogs.com/wxwhnu/p/11419855.html