指定された整数配列のすべての異なる要素をC++で出力します
この問題では、整数値の配列が与えられます。私たちのタスクは、配列のすべての異なる要素を出力することです。出力には、個別の値のみが含まれている必要があります。
問題を理解するために例を見てみましょう
Input: array = {1, 5, 7, 12, 1, 6, 10, 7, 5} Output: 1 5 7 12 6 10
この問題を解決するには、配列の要素の一意性を確認する必要があります。このために、2つのネストされたループを使用します。外側のループは値を取り、内側のループは残りの値をチェックします。複数の値が終了する場合は、1つだけを出力します。
例
このコードは、ソリューションの実装を示しています。
#include <iostream> using namespace std; void printDistinctValues(int arr[], int n) { for (int i=0; i<n; i++){ int j; for (j=0; j<i; j++) if (arr[i] == arr[j]) break; if (i == j) cout<<arr[i]<<"\t"; } } int main(){ int arr[] = {1, 5, 7, 12, 1, 6, 10, 7, 5}; int n = sizeof(arr)/sizeof(arr[0]); cout<<"Distinct values of the array are :\n"; printDistinctValues(arr, n); return 0; }
Distinct elements of the array are − 1 5 6 7 10 12
このソリューションは簡単ですが、2つのループを使用するため、n 2 のオーダーが複雑になります。 。
より複雑な方法は、並べ替えを使用することです。ソートされた配列では、類似した番号の出現が連続します。これで、個別の要素を簡単に印刷でき、スペースも少なくて済みます。
例
ロジックの実装-
#include <bits/stdc++.h> using namespace std; void printDistinctElements(int arr[], int n){ sort(arr, arr + n); for (int i=0; i<n; i++){ while (i < n-1 && arr[i] == arr[i+1]) i++; cout<<arr[i]<<"\t"; } } int main(){ int arr[] = {1, 5, 7, 12, 1, 6, 10, 7, 5}; int n = sizeof(arr)/sizeof(arr[0]); cout<<"Distinct elements of the array are :\n"; printDistinctElements(arr, n); return 0; }
Distinct elements of the array are − 1 5 6 7 10 12
もう1つのより効果的な解決策は、アレイの訪問した要素を追跡することです。配列をトラバースし、配列のすべての訪問済み要素を追跡します。
例
このコードは、ソリューションの実装を示しています。
#include<bits/stdc++.h> using namespace std; void printDistinctElements(int arr[],int n) { unordered_set<int> visited; for (int i=0; i<n; i++){ if (visited.find(arr[i])==visited.end()){ visited.insert(arr[i]); cout<<arr[i]<<"\t"; } } } int main () { int arr[] = {1, 5, 7, 12, 1, 6, 10, 7, 5}; int n=7; cout<<"Distinct numbers of the array are :\n"; printDistinctElements(arr,n); return 0; }
Distinct numbers of the array are − 1 5 7 12 6 10
-
特定のソースから宛先までのすべてのパスをC++で出力します
この問題では、有向グラフが与えられ、グラフのソースから宛先までのすべてのパスを印刷する必要があります。 有向グラフ は、頂点aからbに向けられたエッジを持つグラフです。 問題を理解するために例を見てみましょう ソース=K宛先=P 出力: K -> T -> Y -> A -> P K -> T -> Y -> P K -> A -> P ここで、KからPへのパスを見つけました。パスをトラバースし、KからPに向かうすべてのパスを出力しました。 この問題を解決するために、深さ優先探索を使用してグラフをトラバースします。
-
指定された整数配列のすべての個別の要素を出力するPythonプログラム。
与えられた整数配列。配列の要素が重複している可能性があります。私たちのタスクは、個別の値を表示することです。 例 Input::A=[1,2,3,4,2,3,5,6] Output [1,2,3,4,5,6] アルゴリズム Step 1: input Array element. Step 2: Then pick all the elements one by one. Step 3: then check if the picked element is already displayed or not. Step 4: use one flag variable which i