-
C++で0または1のいずれかとして隣接する要素間の差がある最大長のサブ配列
任意のサイズの配列が与えられ、タスクは、隣接する要素間の差が0または1である要素を持つ、指定された配列のサブ配列を見つけることです。 入力 − int arr [] ={2、1、5、6、3、4、7、6} 出力 −隣接する要素間の差が0または1である最大長のサブアレイは− 2 説明 −差が0または1の配列内の隣接する要素は、{2、1}、{5、6}、{3、4}、および{7.6}です。したがって、サブアレイの最大長は2です。 入力 − int arr [] ={2、1、7、6、5} 出力 −隣接する要素間の差が0または1である最大長のサブアレイは− 3 説明 −差が0または1の配
-
C++で0または1のいずれかとして隣接する要素間の差がある最大長のサブシーケンス
任意のサイズの配列が与えられ、タスクは、隣接する要素間の差が0または1である要素を使用して、指定された配列内のサブシーケンスを見つけることです。 入力 − int arr [] ={2、1、5、6、3、4、7、6} 出力 −隣接する要素間の差が0または1である最大長のサブシーケンスは− 3 説明 −差が0または1の配列内の隣接する要素のサブシーケンスは、{2、1}です。したがって、サブシーケンスの最大長は2です。 入力 − int arr [] ={2、1、7、6、5} 出力 −隣接する要素間の差が0または1である最大長のサブシーケンスは− 3 説明 −差が0または1の配列
-
隣接する要素間の差が0または1の最大長のサブシーケンス| C++で2を設定します
任意のサイズの配列が与えられ、タスクは、隣接する要素間の差が0または1である要素を使用して、指定された配列内のサブシーケンスを見つけることです。 入力 − int arr [] ={2、1、5、6、3、4、7、6} 出力 −隣接する要素間の差が0または1である最大長のサブシーケンスは、次のとおりです。3 説明 −差が0または1の配列内の隣接する要素のサブシーケンスは、{2、1}です。したがって、サブシーケンスの最大長は2です。 入力 − int arr [] ={2、1、7、6、5} 出力 −隣接する要素間の差が0または1である最大長のサブシーケンスは、次のとおりです。3
-
C++で強度Pで殺すことができる最大人数
与えられたタスクは、強さPで殺すことができる人の最大数を見つけることです。無限の人がいる列を考えてください。それぞれのインデックス番号は1から始まります。 s thの強さ 人はs2で表されます 。強さのある人を殺した後、あなたの強さも秒だけ減少します。 例を使用して、私たちがしなければならないことを理解しましょう- 入力 P = 20 出力 3 説明 Strength of 1st person = 1 * 1 = 1 < 20, therefore 1st person can be killed. Remaining strength = P – 1 = 20 &n
-
C++での文字列からの特定のサブシーケンスの削除の最大数
与えられたタスクは、文字列から与えられたサブシーケンスの削除の最大数を見つけることです。文字列sが指定されているため、文字列から削除できるサブシーケンス「abc」の最大数を見つける必要があります。 例を使用して、私たちがしなければならないことを理解しましょう: 入力 s = ‘dnabcxy’ 出力 1 説明 −指定された文字列(「dnabcxy」)には「abc」のサブシーケンスが1つしか見つからないため、出力は1になります。 入力 s = ‘zcabcxabc’ 出力 2 (‘zcabcxabc’) 以下のプログラム
-
C++で指定されたポイントを含むことができるセグメントの最大数
与えられたタスクは、与えられたポイントを含むことができるセグメントの最大数を見つけることです。 サイズn1の配列a1[]が与えられ、2つの整数AとBが与えられます。指定された配列a1[]から、開始点と終了点をそれぞれa1 [i] –Aおよびa1[i]+としてn1線分を形成できます。 別の配列a2[]は、n2個の点で与えられます。これらのポイントは、ポイントが割り当てられているよりも多くのラインセグメントが最大になるように、ラインセグメントに割り当てる必要があります。1つのポイントは、特定のラインセグメントに1回だけ割り当てることができることに注意してください。 例を使用して、私たちがしな
-
C++で直角二等辺三角形に収まる正方形の最大数
与えられたタスクは、底辺が「s」の二等辺三角形の中に収まる、辺が「a」の正方形の最大数を見つけることです(二等辺三角形には少なくとも2つの等しい辺があります)。 例を使用して、私たちがしなければならないことを理解しましょう: 入力 s=5, a=1 出力 10 説明 −基数の平方数は、sをaで割り、1を引くことで計算できます。したがって、基数の平方数=5/1 – 1 =4 同様に、下の4つの正方形を配置すると、base(s-a)の新しい二等辺三角形が得られます。次に同じ手順を繰り返して3つの正方形を取得し、1つの正方形が上に配置されるまで続けます。 入力 s=7, a=2 出力
-
C++で同じ文字で構成される長さKの部分文字列の最大数
タスクが与えられた場合、長さ Kの部分文字列の最大数を見つけることです 同じ文字で構成されています。文字列sと別の整数K 、サイズ Kのサブ文字列の出現をカウントする必要があります 同じ文字を持っています。 見つかったサブ文字列から、最大回数発生するサブ文字列を選択する必要があります。 例を使用して、私たちがしなければならないことを理解しましょう- 入力 s = ”tuuxyyuuc”, K = 2 出力 2 説明 ここで、長さ2で同じ文字を持つサブ文字列は、「uu」と「yy」ですが、「yy」は1回だけ発生し、「uu」は2回存在することがわかります。したがって、出
-
C++のバイナリマトリックスの最大10進値パス
与えられたタスクは、与えられた正方形のバイナリ配列の左上の要素から右下の要素へのパスを移動するときに取得できる最大の整数値を見つけることです。つまり、インデックス[0][0]からインデックスまでです。 [n-1][n-1]。 パスをカバーしている間は、右([i] [j + 1])または下([i + 1] [j])にのみ移動できます 整数値は、トラバースされたパスのビットを使用して計算されます。 例を使用して、私たちがしなければならないことを理解しましょう- 入力 m = { {1, 1, 1, 1}, {0, 0, 1, 0}, &nb
-
バイナリ文字列の0と1の最大差-C++では(O(n)時間)
与えられたタスクは、与えられたバイナリ文字列からサブ文字列を見つけ、次にゼロと1の数の最大差を見つけることです。 例を使用して、私たちがしなければならないことを理解しましょう- 入力 str = “10010110” 出力 2 説明 位置1から4( 0010)までのサブ配列では、ゼロと1の差=3 – 1 =2であり、これは検出可能な最大値です。 入力 str = “00000” 出力 5 以下のプログラムで使用されるアプローチは次のとおりです main()関数で、文字列 strを作成します バイナリ文字列を格納します。また、anarra
-
C++のバイナリ文字列の0と1の最大差
与えられたタスクは、与えられたバイナリ文字列からサブ文字列を見つけ、次にゼロと1の数の最大差を見つけることです。 例を使用して、私たちがしなければならないことを理解しましょう- 入力 str = “100100110” 出力 2 説明 位置1から5( 00100)までのサブ配列では、ゼロと1の差=4 – 1 =3であり、これは検出可能な最大値です。 入力 str = “00000” 出力 5 以下のプログラムで使用されるアプローチは次のとおりです main()関数で、文字列 strを作成します バイナリ文字列を格納します。また、変数in
-
C++の2つの大文字の間の最大の異なる小文字のアルファベット
与えられたタスクは、与えられた文字列の2つの大文字のアルファベットの間に存在する個別の小文字のアルファベットの最大数を見つけることです。 例を使用して、私たちがしなければならないことを理解しましょう- 入力 str = “JKyubDoorG” 出力 3 説明 「yub」は、2つの大文字のアルファベットKとDの間にあり、カウント3になります。 「oor」は、2つの大文字のアルファベットDとGの間にあり、「o」は繰り返しのアルファベットであり、異なるアルファベットを探しているため、カウント2になります。 したがって、出力は3です。 入力 str = “
-
C++のk個の更新で等しくすることができる最大要素
与えられたタスクは、要素を最大k回インクリメントした後、特定の配列で等しくすることができる要素の最大数を見つけることです。 例を使用して、私たちがしなければならないことを理解しましょう- 入力 a[] = {1, 3, 8}, k = 4 出力 2 説明 ここでは、1を3回インクリメントし、3を4回インクリメントすることで、2つの4を取得できます。これにより、a [] ={4、4、8} 入力 arr = {2, 5, 9}, k = 2 出力 0 以下のプログラムで使用されるアプローチは次のとおりです main()関数で、int a []、sizeを初期化します。 およびk 配列
-
C++でaとbの特定の単位を使用して交差できる最大要素
与えられたバイナリ配列arr[] および2つの変数a およびb いくつかの初期値があります。配列内の要素を交差させるにはarr[] 2つの方法があります- arr [i] ==1の場合、 aから1ユニットを使用できます。 、 bに変更はありません 。 bから1ユニット使用した場合 、その後、1単位増加します。 (aの値を元の値より大きくすることはできないことに注意してください。) arr [i] ==0の場合、 aから1ユニットを使用できます。 またはb 。 例を使用して、私たちがしなければならないことを理解しましょう- 入力 arr[] = {0, 0, 0, 1,
-
C++でのビットマスキングと動的計画法
最初に、ビットマスキングと動的計画法について学び、次に、実装に関連するクエリを解決する、それに関連する問題を解決します。 ビットマスク マスクとも呼ばれます コレクションのサブセットをエンコードするNビットのシーケンスです。マスクの要素は、設定することも設定しないこともできます(つまり、0または1)。これは、ビットマスクで選択された要素の可用性を示します。たとえば、マスクのi番目のビットが設定されている場合、要素iはサブセットで使用できます。 N要素セットの場合、2 Nが存在する可能性があります サブセットに対応するそれぞれをマスクします。 したがって、問題を解決するために、マスクから開
-
C++でのバイトニックソート
バイトニックソートは、最適な実装のために作成された並列ソートアルゴリズムであり、ハードウェアと並列プロセッサアレイで最適に使用されます。 。 ただし、マージソートと比較すると、最も効果的なものではありません。ただし、並列実装には適しています。これは、事前定義された比較シーケンスにより、ソートされるデータから独立して比較が行われるためです。 バイトニックソートが効果的に機能するためには、要素の数が特定のタイプの数量、つまり 2 ^ nの順序である必要があります。 。 バイトニックソートの主要な部分の1つは、要素値が最初に増加するシーケンスであるバイトニックシーケンスです。 その後、減少 。
-
C ++でのビット操作(重要な戦術)
最初にaboutビットを思い出してみましょう。ビット演算子は短いです。 ビット 2進数です。これは、コンピューターが理解できるデータの最小単位です。 Inは、 0(オフを示す)と1(オンを示す)の2つの値のうちの1つのみを持つことができます。 。 ビット演算子 プログラムでビットレベルで動作する演算子です。 これらの演算子は、プログラムのビットを操作するために使用されます。 Cには、6つのビット演算子があります- ビットごとのAND(&) ビットごとのOR(OR) ビットごとのXOR(XOR) ビット単位の左Shift( ) ビット単位ではありません
-
C ++の範囲のビット単位および(または&)
この問題では、2つの整数値aとbが与えられます。そして、私たちのタスクは、 aからbまでの範囲のビット単位および(&)を見つけることです。 。これは、a&a + 1&a + 2&…b-1&bの値を見つける必要があることを意味します。 問題を理解するために例を見てみましょう 入力 − a =3、b =8 出力 − 0 説明 − 3&4&5&6&7&8 =0 この問題を解決するための簡単な解決策は、aから始めて、1をbに増やすことにより、ビット単位ですべての数値を見つけることです。 より効果的なソリューション これはより効果的な解決策です。これは-を使用して実行できます。
-
C++でのN個のバイナリ文字列のビットごとのAND
この問題では、サイズnのバイナリ文字列の配列bin[]が与えられます。私たちのタスクは、N個のバイナリ文字列のビットごとのAND(&)を見つけるプログラムを作成することです。 ここでは、すべての数値を取得し、それらのビットごとのANDを見つけます。つまり、bin [0]&bin [1]&... bin [n-2]&bin [n] 問題を理解するために例を見てみましょう 入力 − bin[] = {“1001”, “11001”, “010101”} 出力 − 000001 説明 −すべてのバイナリ文字列の
-
C++でKに最も近いサブ配列のビットごとのAND
この問題では、サイズnと整数kの配列arr[]が与えられます。私たちのタスクは、インデックスiからjまでのサブ配列を見つけて、そのすべての要素のビットごとのANDを計算することです。この後、abs(K-(サブ配列のビットごとのAND))の最小値を出力します。 問題を理解するために例を見てみましょう 入力 − arr [] ={5、1}、k =2 出力 − この問題を解決するには、いくつかの方法があります。 簡単な解決策の1つは、直接法を使用することです。すべてのサブ配列のビットごとのANDを見つけてから、|K-X|を見つけます。 ステップ1 −すべてのサブ配列のビットごとのAN