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

C++の2つのリストの共通要素の最小インデックス合計


2人が異なる都市を選択したいとします。彼らは異なるリストに都市をリストしました。私たちは、一般的な選択肢を見つけるために支援する必要があります。したがって、これらの都市を見つける必要があります。それらは両方でマークされています。

この操作はsetintersectionプロパティと非常によく似ています。2つのリストをsetとして取得し、setintersectionを実行して共通要素を取得します。

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<string> commonInterest(string set1[], int n1, string set2[], int n2) {
   vector<string> v(min(n1, n2));
   vector<string>::iterator it;
   // Sorting both the list
   sort(set1, set1 + n1);
   sort(set2, set2 + n2);
   it = set_intersection(set1, set1 + n1, set2, set2 + n2,
   v.begin());
   return v;
}
int main() {
   string first[] = { "Kolkata", "Hyderabad", "Chennai", "Delhi" };
   int n1 = sizeof(first) / sizeof(first[0]);
   string second[] = { "Mumbai", "Kolkata", "Durgapur", "Delhi" };
   int n2 = sizeof(second) / sizeof(second[0]);
   vector<string> v = commonInterest(first, n1, second, n2);
   cout << "Common cities: ";
   for (int i = 0; i < v.size(); i++)
      cout << ' ' << v[i];
   cout << endl;
}

出力

Common cities: Delhi Kolkata

  1. C++での2つのリンクリストの交差

    リンクリストは線形データ構造であり、各ノードには2つのブロックがあり、一方のブロックにはノードの値またはデータが含まれ、もう一方のブロックには次のフィールドのアドレスが含まれます。 各ノードにリスト内の他のノードを指すランダムポインタが含まれるようなリンクリストがあると仮定します。タスクは、2つのリンクリストが互いに交差するノードを見つけることです。それらが交差しない場合は、出力としてNULLまたは空を返します。 例 入力-1: 出力: 2 説明: 指定されたリンクリストはノードで値「2」と交差するため、出力として値「2」を返します。 入力-2: 出

  2. TwoSumIV-入力はC++のBSTです

    二分探索木と1つのターゲット値があるとします。合計が指定されたターゲットと等しくなるように、BSTに2つの要素が存在するかどうかを確認する必要があります。 したがって、入力が次のような場合 その場合、出力はTrueになります。 これを解決するには、次の手順に従います- 配列を定義するv 関数inorder()を定義します。これはルートになります ルートがnullの場合、- 戻る 順序なし(ルートの左側) ルートの値をvに挿入 順序なし(ルートの左側) 関数findnode()を定義します。これにはkがかかります n:=vのサ