C++で最大回数発生するすべての合計ペアを出力します
この問題では、n個の一意の整数の配列が与えられます。そして、最大頻度を持つ配列の2つの整数の合計を見つける必要があります。問題には複数の解決策があり、それらすべてを見つける必要があります。
Input : array = { 1, 12, 5, 7, 9, 11} Output : 16 12
説明 −合計16と12は2回発生します。
5 + 11 = 16 & 7 + 9 = 16 1 + 11 = 12 & 5 + 7 = 12
この問題を解決するために、この問題へのアプローチは、合計ペアごとに発生をチェックしてから、ペアを最大回数で出力することです。
問題を解決するための手順 −
Step 1: Iterate over all pairs. Step 2: The occurrence of sum pairs is counted using hash-table. Step 3: After the interation process is done, the sum pair with maximum occurrence is printed.
例
#include <bits/stdc++.h> using namespace std; void sumPairs(int a[], int n){ unordered_map<int, int> pairSum; for (int i = 0; i < n - 1; i++) { for (int j = i + 1; j < n; j++) { pairSum[a[i] + a[j]]++; } } int occur = 0; for (auto it : pairSum) { if (it.second > occur) { occur = it.second; } } for (auto it : pairSum) { if (it.second == occur) cout << it.first <<"\t"; } } int main(){ int a[] = { 1, 12, 5, 7, 9, 11 }; int n = sizeof(a) / sizeof(a[0]); cout<<"The sum pairs with max ccurence are : "<<endl; sumPairs(a, n); return 0; }
出力
16 12
-
すべてのサイクルを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つの要素(偶数)が含まれます。 さて、この問題を解決するために。各レベルでノードの数を見つけ、それに応じて偶数-奇数レベルを出力す