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

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

  1. すべてのサイクルをC++の無向グラフに出力します

    この問題では、無向グラフが与えられ、グラフに形成されるすべてのサイクルを印刷する必要があります。 無向グラフ 互いに接続されたグラフです。一方向グラフのすべてのエッジは双方向です。無向ネットワークとも呼ばれます。 サイクル グラフのデータ構造は、すべての頂点がサイクルを形成するグラフです。 問題をよりよく理解するための例を見てみましょう- グラフ- 出力- Cycle 1: 2 3 4 5 Cycle 2: 6 7 8 このために、グラフのいくつかのプロパティを利用します。グラフ彩色法を使用して、閉路グラフで発生するすべての頂点に色を付ける必要があります。また、頂点

  2. 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つの要素(偶数)が含まれます。 さて、この問題を解決するために。各レベルでノードの数を見つけ、それに応じて偶数-奇数レベルを出力す