C ++

 Computer >> コンピューター >  >> プログラミング >> C ++
  1. O(n)時間とO(1)余分なスペースで重複を検索-C++で1を設定

    0からn-1までの数字のリストがあるとします。数は可能な限り何度でも繰り返すことができます。余分なスペースをとらずに繰り返し番号を見つける必要があります。 n =7の値で、リストが[5、2、3、5、1、6、2、3、4、5]のような場合。答えは5、2、3になります。 これを解決するには、次の手順に従う必要があります- リスト内の要素eごとに、次の手順を実行します- sign:=A[eの絶対値] 符号が正の場合は負にします それ以外の場合は繰り返しです。 例 #include<iostream> #include<cmath> using namespace st

  2. C++を使用してツリーの奇数レベルでノードを印刷するプログラム

    このチュートリアルでは、特定の二分木の奇数レベルに存在するノードを印刷するプログラムについて説明します。 このプログラムでは、ルートノードのレベルは1と見なされ、同時に代替レベルは次の奇数レベルになります。 たとえば、次の二分木が与えられているとしましょう この場合、この二分木の奇数レベルのノードは1、4、5、6になります。 例 #include <bits/stdc++.h> using namespace std; struct Node {    int data;    Node* left, *right; }; //p

  3. C++で指定された制約の下で重複を検索します

    6つの異なる番号のリストがあるとします。 1つの数字だけが5回繰り返されます。したがって、配列には合計10個の要素があります。 2つの比較のみを使用して重複する番号を見つけます。リストが[1、2、3、4、4、4、4、4、5、6]のような場合、出力は4です。 数字は10個しかないため、重複する数字の種類に関係なく、数字の範囲はインデックス3から5になります。これらのインデックスを確認することで、結果を見つけることができます。 例 #include<iostream> using namespace std; int getDuplicate(int array[]) {  

  4. C++で連続する要素のXORを使用して配列の要素を検索する

    n個の要素のリストを見つける必要があると考えてください。ただし、実際の配列の2つの連続する要素のXOR値があります。また、実際の最初の要素が示されています。したがって、配列要素がa、b、c、d、e、fの場合、指定された配列はa ^ b、b ^ c、c ^ d、d ^ e、およびe^fになります。 aという名前の最初の番号が与えられているので、すべての番号を見つけるのに役立ちます。実際の配列の2番目の要素を検索する場合は、b =a ^ arr [i]を実行する必要があり、2番目の要素c =b ^arr[1]などを実行する必要があります。 例 #include<iostream> u

  5. C ++では最初の配列に存在し、2番目には存在しない要素を検索します

    2つの配列AとBがあるとします。要素はほとんどありません。セットAには存在するが、セットBには存在しない要素を見つける必要があります。そのような状況を考え、AとBをセットと見なすと、これは基本的にセット分割操作です。 AとBのセットの差により、これらの要素が返されます。 例 #include<iostream> #include<set> #include<algorithm> #include<vector> using namespace std; void setDiffResults(int A[], int B[], int An, i

  6. C++の列タイトルからExcelの列番号を検索します

    Excelの列番号はアルファベットであることがわかっています。これはAから始まり、Zの後に、AA、AB、ZZ、そして再びAAA、AAB、ZZZというように続きます。したがって、列1はA、列27はZです。ここでは、列の数が指定されている場合に列文字を取得する方法を説明します。したがって、列番号が80の場合、CBになります。 数値nがあり、その値が28であるとすると、26でリマインダーを取得する必要があります。余りが0の場合、数値は26、52などになります。次に、出力文字列にZを入れます。 nの値はn/26 – 1になります。余りがゼロ以外の場合は、それに応じて文字列に文字を挿入し、n =n/2

  7. C++の配列で最小値の頻度を見つける

    ここでは、配列内の最小要素の頻度を見つける方法を説明します。配列要素が[5、3、6、9、3、7、5、8、3、12、3、10]であると仮定します。ここで、最小要素は3であり、この要素の頻度は4です。したがって出力は4です。 。 これを解決するために、リストの最小の要素を見つけ、最初の数字の出現を数え、それが結果になります。 例 #include<iostream> using namespace std;    int min_element(int arr[], int n){    int min = arr[0];   &nb

  8. 配列がC++で等しい合計の2つのサブ配列に分割できるかどうかを調べます

    配列Aがあるとします。配列を、合計が等しい2つの部分に分割できるかどうかを確認する必要があります。要素が[6、1、3、2、5]であるとすると、[6、1]、および[2、5]は2つのサブ配列になります。 この問題は、これらのルールに従うことで簡単に解決できます。最初に配列のすべての要素の合計を見つける必要があります。次に、配列の各要素について、total_sum(これまでに見つかった要素の合計)を使用して正しい合計を計算できます。 例 #include<iostream> #include<numeric> using namespace std; void displa

  9. nがC++でk個の数の積として記述できるかどうかを調べます

    数Nがあるとします。別の数kがあります。数がk個の数を使用して表現できるかどうかを確認する必要があります。数値54、k =3とすると、[2、3、9]のような数値が出力されます。表現できない場合は、それを出力します。 これを解決するために、Nのすべての素因数を見つけてベクトルに格納し、1より大きいk個の数を見つけるために、ベクトルのサイズがkより大きいかどうかを確認します。サイズがk未満の場合は、-1を返します。それ以外の場合は、最初のk-1の因数を出力し、最後の因数は残りのすべての数値の積になります。 例 #include<iostream> #include<vector

  10. C++で指定された値に最も近いk個の要素を検索します

    要素が少ない配列Aがあるとします。他に2つの値Xとkがあります。私たちのタスクは、配列AからXの最も近い要素のk個を見つけることです。要素Xが配列に存在する場合、それは出力に表示されません。 A =[12、16、22、30、35、39、42、45、48、50、53、55、56]およびX =35、k =4の場合、出力は30、39、42、45になります。 。 これを解決するために、二分探索アプローチを使用します。これを使用して、クロスオーバーポイントを取得します。クロスオーバーポイントのインデックスが見つかった場合、O(k)時間でk個の最も近い要素を出力できます。 例 #include<i

  11. C++のソートされていない配列でk個の最も近い数を検索します

    要素が少ない配列Aがあるとします。配列はソートされていません。他に2つの値Xとkがあります。私たちのタスクは、配列AからXの最も近い要素のk個を見つけることです。要素Xが配列に存在する場合、それは出力に表示されません。 A =[48、50、55、30、39、35、42、45、12、16、53、22、56]およびX =35、k =4の場合、出力は30、39、42、45になります。 。 これを解決するために、ヒープデータ構造を使用します。手順は次のようになります- 最初のk個の要素との差の最大ヒープを1つ作成します k + 1番目の要素から始まるすべての要素について、これらの手順を繰

  12. C ++で条件演算子を使用せずに、配列から最大の要素を検索します

    いくつかの要素を持つ配列Aがあるとします。配列Aで最大の要素を見つける必要がありますが、制約は、条件演算子を使用できないことです。したがって、A =[12、63、32、24、78、56、20]の場合、最大要素は78にな​​ります。 この問題を解決するために、ビット単位のAND演算を使用します。最初に、1つの追加要素INT_MAX(すべてのビットが1)を配列に挿入します。次に、配列から任意のペアの最大AND値を見つけようとします。この取得された最大値には、INT_MAXのAND値と元の配列の最大要素が含まれ、これが結果になります。 例 #include <iostream> #in

  13. C ++で指定された文字列の一部の文字を削除して、辞書で最大の単語を検索します

    辞書と文字列sがあるとします。辞書で最も長い文字列を見つけます。これは、文字列sの一部の文字を削除することで形成できます。 sが「apbreoigroakml」であると仮定します。辞書には{「prog」、「ram」、「program」}があり、結果は「program」になります。 これを解決するために、すべての辞書の単語をトラバースし、各単語について、指定された文字列のサブシーケンスがそのようなすべての単語の中で最も長いかどうかを確認します。最後に、指定された文字列をサブシーケンスとして含む最長の単語を返します。 例 #include<iostream> #include<

  14. C ++でn個の整数の配列の1つおきの要素を削除した後、最後の要素を検索します

    1からnまでの整数を含む1つの循環配列があるとします。最初の要素から始まる2つおきの要素を削除した後、リストに残る最後の要素を見つけます。入力が5の場合、配列は[1、2、3、4、5]になります。 1から開始します。2番目の要素を削除すると、次のようになります- 1 0 3 4 5 1 0 3 0 5 0 0 3 0 5 0 0 3 0 0 したがって、リストに残る要素は3です。 この問題は再帰を使用して解決します。 nが偶数であると仮定します。 2、4、6の数字は削除され、1から再開します。したがって、n/2の数値は削除されます。そして、奇数の数字1、3、5、…n/2のみを含むn/2の配列

  15. C++で文字列内の文字の最後のインデックスを検索します

    文字列strがあるとします。別のキャラクターchがいます。私たちのタスクは、文字列内のchの最後のインデックスを見つけることです。文字列が「Hello」で、文字ch =‘l’の場合、最後のインデックスは3になります。 これを解決するために、文字が「l」と同じでない場合はリストを右から左にトラバースし、一致する場合はインデックスを減らし、停止して結果を返します。 例 #include<iostream> using namespace std; int getLastIndex(string& str, char ch) {    for (int i

  16. C++の行列の各列の最大要素を検索します

    行列があると考えてください。私たちのタスクは、その行列の各列の最大要素を見つけて印刷することです。このタスクは簡単です。列ごとに、maxをリセットし、max要素を見つけて、それを印刷します。理解を深めるためにコードを見てみましょう。 例 #include<iostream> #define MAX 10 using namespace std; void largestInEachCol(int mat[][MAX], int rows, int cols) {    for (int i = 0; i < cols; i++) {   &nbs

  17. C++の行列の各行の最大要素を検索します

    行列があると考えてください。私たちのタスクは、その行列の各行の最大要素を見つけて、それらを出力することです。このタスクは簡単です。各行について、maxをリセットし、max要素を見つけて、それを印刷します。理解を深めるためにコードを見てみましょう。 例 #include<iostream> #define MAX 10 using namespace std; void largestInEachRow(int mat[][MAX], int rows, int cols) {    for (int i = 0; i < rows; i++) { &nbs

  18. 単一リンクリストの中央をC++で再帰的に検索

    番号のリストがあると考えてください。私たちのタスクは、再帰を使用してリンクリストの中央を見つけることです。したがって、リスト要素が[12、14、18、36、96、25、62]の場合、中央の要素は36です。 この問題を解決するために、リスト内のノードの総数を再帰的にカウントし、その半分を実行します。次に、再帰をロールバックして、呼び出しごとにnを1ずつデクリメントし、nがゼロの要素を返します。 例 #include<iostream> #include<stack> using namespace std; class Node{    public

  19. C++で数値の最上位セットビットを検索します

    ここでは、数値が指定されているかどうか、次に設定されている最上位ビット値の値を見つける方法を確認します。値は2の累乗です。したがって、数値が10の場合、MSB値は8になります。 MSBの位置を見つけてから、k番目の位置にビットを設定して数値の値を見つける必要があります。 例 #include<iostream> #include<cmath> using namespace std; int msbBitValue(int n) {    int k = (int)(log2(n));    return (int)(pow(2

  20. C++でDで割り切れるN桁の数値を検索します

    NとDの2つの数があるとします。Dで割り切れるN桁の数を見つける必要があります。Nが3で、Dが5の場合、数は500になります。これは簡単に解決できます。 Dが10でNが1の場合、それは不可能です。 Dを入れて、Dの桁数がmであると仮定し、N – m個の0を付けて、N桁の数でDで割り切れるようにします。 例 #include<iostream> using namespace std; string nDigitDivByD(int n, int d) {    string ans = "";    if (d <

Total 5992 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:91/300  20-コンピューター/Page Goto:1 85 86 87 88 89 90 91 92 93 94 95 96 97