Programmers作成大数


😳 白俊で同じ問題があったのでそうしましたが間違っていましたそしてネットで検索してみると、私のコードが長すぎることに気づきました.もっと効率的なコードを真似てみましたが、頭のいい人が多すぎるようです.

💻 プログラマによる大数の作成


  • から与えられた数字からk個の数字を奪うと、最大の数字を創造しなければならない.
  • で与えられた数の大きさがnである場合、n−k個の数字を抽出する必要がある.
  • したがって、
  • は、最初のコンサルティングの最大指数をn−kとする.
  • の次のインデックスになるstart変数は、最大値の次から始まります.
  • 角は疑問文の最後に,回答に最大値の変数を加える.
  • 💻 完全なコード

    #include <string>
    #include <vector>
    
    using namespace std;
    
    string solution(string number, int k)
    {
        string answer = "";
    
        int numSize = number.size() - k;
        int start = 0;
        for (int i = 0; i < numSize; i++)
        {
            char maxNum = number[start];
            int maxIdx = start;
            for (int j = start; j <= k + i; j++)
            {
                if (maxNum < number[j])
                {
                    maxNum = number[j];
                    maxIdx = j;
                }
            }
            start = maxIdx + 1;
            answer += maxNum;
        }
    
        return answer;
    }
    正直に言って、私が何を言っているのか分かりません.私は流れを理解できますが、どうしてこのような考えがあるのか知りたいです.もう少し解けばいいのかな…