合計がC++の特定の値に等しい2つのリンクリストからペアをカウントします
2つのリンクリストが与えられ、タスクは、リンクリストの整数要素を使用してペアを形成し、それらの合計が特定の値、たとえばkに等しくなるようにすることです。リンクリストは、リンクを介して相互に接続された一連のデータ構造です。
入力
vector v_1 = {5, 7, 8, 10, 11},.
vector v_2 = {6, 4, 3, 2, 0} , int k = 11 出力
Count of pairs from two linked lists whose sum is equal to a given value k are: 4
説明
The pairs which can be formed using the given linked lists are: (5, 6) = 11(equals to k), (5, 4) = 9(not equals to k), (5, 3) = 8(not equals to k), (5, 2) = 7(not equals to k), (5, 0) = 5(not equals to k), (7, 6) = 13(not equals to k), (7, 4) = 11(equals to k), (7, 3) = 10(not equals to k), (7, 2) = 9(not equals to k), (7, 0) = 7(not equals to k), (8, 6) = 14(not equals to k), (8, 4) = 12(not equals to k), (8, 3) = 11(equals to k), (8, 2) = 10(not equals to k), (8, 0) = 8(not equals to k), (10, 6) = 16(not equals to k), (10, 4) = 14(not equals to k), (10, 3) = 13(not equals to k), (10, 2) = 12(not equals to k), (10, 0) = 10(not equals to k), (11, 6) = 17(not equals to k), (11, 4) = 15(not equals to k), (11, 3) = 14(not equals to k), (11, 2) = 13(not equals to k), (11, 0) = 11(not equals to k). So, clearly there are 3 pairs which are equal to the given sum.
入力
vector v_1 = {2, 3, 5, 6},.
vector v_2 = {6, 4, 3} , int k = 6 出力
Count of pairs from two linked lists whose sum is equal to a given value k are: 2
説明
The pairs which can be formed using the given linked lists are: (2, 6) = 8(not equals to k), (2, 4) = 6(equals to k), (2, 3) = 5(not equals to k), (3, 6) = 9(not equals to k), (3, 4) = 7(not equals to k), (3, 3) = 6(equals to k), (5, 6) = 11(not equals to k), (5, 4) = 9(not equals to k), (5, 3) = 8(not equals to k), (6, 6) = 12(not equals to k), (6, 4) = 10(not equals to k), (6, 3) = 9(not equals to k),. So, clearly there are 2 pairs which are equal to the given sum.
以下のプログラムで使用されているアプローチは次のとおりです
-
kの値と整数型の値を2つのベクトルに入力して、ベクトルを渡してリンクリストを作成できるようにします
-
関数に引数として渡されたベクトルを使用して、リンクリストを作成する関数を作成します。
-
ベクトルのサイズになるまでループをトラバースし、クラスのポインタオブジェクトを作成します
ListNode
-
ptr-> nextがNULLに等しくないときにループをトラバースし、ptrをptr-> next
に設定します -
ptr-> next set vector [i]
の内部 -
リターンスタート
-
-
指定された合計に一致するペアの数を返す関数を作成します。
-
一時変数のカウントを取得し、0に設定します
-
2つのポインタオブジェクトを作成します。つまり、最初のリンクリストの場合は* first_list、2番目のリンクリストの場合は*second_listです。
-
最初のリストの開始ポインタからリストが空でなくなるまでループを開始します
-
ループ内で、2番目のリストの開始ポインターからリストが空でなくなるまで別のループを開始します
-
ループ内で、IF(first_list-> data + second_list-> data)==kをチェックしてから、カウントを1ずつインクリメントします
-
カウントを返す
-
-
結果を印刷します。
例
#include<bits/stdc++.h>
using namespace std;
class ListNode{
public:
int data;
ListNode *next;
ListNode(int data){
this->data = data;
next = NULL;
}
};
ListNode *CreateList(vector v){
ListNode *start = new ListNode(v[0]);
for (int i = 1; i < v.size(); i++){
ListNode *ptr = start;
while (ptr->next != NULL){
ptr = ptr->next;
}
ptr->next = new ListNode(v[i]);
}
return start;
}
int sum_pair(ListNode *start_1, ListNode *start_2, int k){
int count = 0;
ListNode *first_list , *second_list;
for (first_list = start_1; first_list != NULL; first_list = first_list->next){
for (second_list = start_2; second_list != NULL; second_list = second_list->next){
if ((first_list->data + second_list->data) == k){
count++;
}
}
}
return count;
}
int main(){
vector<int> v_1 = {5, 7, 8, 10, 11};
ListNode* start_1 = CreateList(v_1);
vector v_2 = {6, 4, 3, 2, 0};
ListNode* start_2 = CreateList(v_2);
int k = 11;
cout<<"Count of pairs from two linked lists whose sum is equal to a given value k are: "<<sum_pair(start_1, start_2, k);
} 出力
上記のコードを実行すると、次の出力が生成されます-
Count of pairs from two linked lists whose sum is equal to a given value k are: 4
-
ソートされた二重リンクリスト内のトリプレットをカウントします。このリストの積は、C++で指定された値xに等しくなります。
整数値を含むソートされた二重リンクリストが与えられます。目標は、積が与えられた値xに等しいトリプレットを見つけることです。入力リンクリストが3−4−1−2で、xが6の場合、カウントは1になります(トリプレット(3,1,2)) 例 入力 linked list: [ 200−4−16−5−10−10−2 ] x=200 出力 Count of triplets in a sorted doubly linked list whose product is equal to a given value x are:
-
合計がC++の指定された値xに等しい2つのBSTからペアをカウントします
入力として2つの二分探索木と変数xが与えられます。目標は、ノードの値の合計がxに等しくなるように、各ツリーからノードのペアを見つけることです。 BST_1からノード1を取得し、BST_2からノード2を取得して、両方のデータ部分を追加します。 sum=xの場合。インクリメントカウント。 例を挙げて理解しましょう。 入力 出力 −合計が特定の値xに等しい2つのBSTからのペアの数は− 1 説明 −ペアは(8,6) 入力 出力 −合計が特定の値xに等しい2つのBSTからのペアの数は− 2 説明 −ペアは(5,15)と(4,16) 以下のプログラムで使用されているアプ