指定された整数配列のすべての異なる要素を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