C++の要素の正と負の値を含むすべてのペアを出力します
この問題では、一意の整数の配列が与えられます。そして、配列に存在する整数のすべてのペア(正と負の整数)を返す必要があります。
問題をよりよく理解するために例を見てみましょう-
Input: array = {1 , 4 , 7 , -1, 2, 5, -7} Output: -11 -33
この問題を解決する簡単な方法は、2つのループを使用して、正と負のペアを見つけることです。ただし、このソリューションは複雑なソリューションであり、n2のオーダーの時間計算量があります。ここで、nは配列のサイズです。
しかし、問題を解決するには、より効率的なアプローチを見つける必要があります。そのために、最初に配列をソートします。そして、このソートされた配列で、すべての負の整数について、反対の(正の)整数を見つけます。この二分探索は良いアプローチになります。そして、検索を使用して見つかったペアを印刷します。
例
このメソッドのコード図を見てみましょう-
#include <bits/stdc++.h> using namespace std; void positiveNegativePair(int arr[], int n) ; int main(){ int arr[] = { 1, 4, 6 , 3, -1, -2, 5, -6, -5 , 8 }; int n = 10; cout<<"Postive Negative pairs in the array are :\n"; positiveNegativePair(arr, n); return 0; } void positiveNegativePair(int arr[], int n){ bool pair_exists = false; sort(arr, arr + n); for (int i = 0; i < n; i++) { if (arr[i] < 0) { if (binary_search(arr, arr + n, -arr[i])) { cout<<arr[i]<<", "<<-arr[i]<<"\t"; pair_exists = true; } } else break; } if (!pair_exists) cout << "No positive-negative pairs exist in the code"; }
出力
配列内の正の負のペアは-
です-6, 6 -5, 5 -1, 1
-
すべてのサイクルをC++の無向グラフに出力します
この問題では、無向グラフが与えられ、グラフに形成されるすべてのサイクルを印刷する必要があります。 無向グラフ 互いに接続されたグラフです。一方向グラフのすべてのエッジは双方向です。無向ネットワークとも呼ばれます。 サイクル グラフのデータ構造は、すべての頂点がサイクルを形成するグラフです。 問題をよりよく理解するための例を見てみましょう- グラフ- 出力- Cycle 1: 2 3 4 5 Cycle 2: 6 7 8 このために、グラフのいくつかのプロパティを利用します。グラフ彩色法を使用して、閉路グラフで発生するすべての頂点に色を付ける必要があります。また、頂点
-
C++で奇数と偶数のノードを含むすべてのレベルを出力します
この問題では、ツリーが与えられます。そして、偶数のノードと奇数のノードを含むすべてのレベルを印刷する必要があります。 概念をよりよく理解するために例を見てみましょう 出力- Levels with odd number of nodes: 1, 3, 4 Levels with even number of nodes: 2 説明 −第1レベルには1つの要素(奇数)、第2レベルには2つの要素(偶数)、第3レベルには3つの要素(奇数)、第4レベルには1つの要素(偶数)が含まれます。 さて、この問題を解決するために。各レベルでノードの数を見つけ、それに応じて偶数-奇数レベルを出力す