C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++の美しい配列


Nの固定値について、配列Aが整数1、2、...、Nの順列である場合、-

のように美しいと仮定します。
  • すべてのi

Nがあるとすると、美しい配列Aを見つける必要があります。

したがって、入力が5のような場合、出力は[3,1,2,5,4]

になります。

これを解決するには、次の手順に従います-

  • retという配列を1つ作成し、1をretに挿入します

  • retのサイズ

    • 配列tempを作成します

    • 0からretのサイズまでの範囲のiの場合– 1

      • ret [i] * 2 – 1 <=Nの場合、ret [i] * 2 –1を一時配列に挿入します

    • 0からretのサイズまでの範囲のiの場合– 1

    • ret [i] * 2 <=Nの場合、ret [i]*2を一時配列に挿入します

    • set ret:=temp

  • retを返す

理解を深めるために、次の実装を見てみましょう-

#include <bits/stdc++.h>
using namespace std;
void print_vector(vector<auto> v){
   cout << "[";
   for(int i = 0; i<v.size(); i++){
      cout << v[i] << ", ";
   }
   cout << "]"<<endl;
}
class Solution {
   public:
   vector<int> beautifulArray(int N) {
      vector <int> ret;
      ret.push_back(1);
      while(ret.size() < N){
         vector <int> temp;
         for(int i = 0; i < ret.size(); i++){
            if(ret[i] * 2 - 1 <= N) temp.push_back(ret[i] * 2 - 1);
         }
         for(int i = 0; i < ret.size(); i++){
            if(ret[i] * 2 <= N)temp.push_back(ret[i] * 2 );
         }
         ret = temp;
      }
      return ret;
   }
};
main(){
   Solution ob;
   print_vector(ob.beautifulArray(6));
}

入力

5

出力

[1,5,3,2,4]

  1. C++でゲームVをジャンプする

    arrと呼ばれる整数の配列と整数dがあるとします。 1つのステップで、インデックスiから-にジャンプできます。 i + xここで、i +x

  2. C++での並べ替え

    このセクションでは、C++で並べ替えアルゴリズムを実行する方法を説明します。並べ替えられた配列は、各要素が数値、アルファベット順などの順序で並べ替えられた配列です。バブルソート、挿入ソート、選択ソート、マージソート、クイックソート、ヒープソートなど、数値配列をソートするための多くのアルゴリズムがあります。選択ソートを使用した配列のソートの詳細については、以下を参照してください。 選択ソートは、ソートされた配列を生成するソート方法です。これは、配列内の最小の要素を繰り返し見つけて、ソートされていない部分の先頭にある要素と交換することによって行われます。 選択ソートを使用してソートされた配列を