C++のNxM行列のすべての行に存在する配列の要素の数
整数型の要素の配列と、指定された行と列のサイズの行列または2次元配列が与えられます。タスクは、行列の各行に存在する配列の要素の数を計算することです。
入力
int arr = { 2, 4, 6} and int matrix[row][col] = { { 2, 4, 6 }, {3, 4, 6}, {6, 2, 1}}
出力
Elements of array in row 1 are: 3 Elements of array in row 2 are: 2 Elements of array in row 3 are: 2
説明
we are having array containing 2, 4 and 6 as elements and now we will check the occurrences of 3 elements in every row of matrix by matching the elements of an array with the elements of a matrix, like, 2, 4 and 6 all are present in first row of matrix so the count of elements for row 1 is 3, similarly, count of elements for row 2 is 2 as only 4 and 6 are there and count of elements for row 3 is 2 as only 2 and 6 are there.
入力
int arr = { 1, 3} and int matrix[row][col] = { { 1, 4, 6 }, {3, 1, 6}, {6, 2, 4}}
出力
Elements of array in row 1 are: 1 Elements of array in row 2 are: 2 Elements of array in row 3 are: 0
説明
we are having array containing 1 and 3 as elements and now we will check the occurrences of 2 elements in every row of matrix by matching the elements of an array with theelements of a matrix, like, only 1 is present in first row of matrix so the count of elements for row 1 is 1, similarly, count of elements for row 2 is 2 as 1 and 3 both are there and count of elements for row 3 is 0 as none of 1 and 3 are there.
以下のプログラムで使用されているアプローチは次のとおりです
与えられた問題を解決するための複数のアプローチ、すなわちナイーブなアプローチと効率的なアプローチがあります。それでは、最初にナイーブなアプローチを見てみましょう。 。
-
整数要素の配列と行および列のサイズの行列を入力します
-
配列のサイズを計算し、配列、行列、配列のサイズを関数に渡してさらに処理します
-
一時変数countを取得して、行列行に存在する要素の数を格納します。
-
0から行列の行サイズまでループFORを開始します
-
ループ内で、FORを0から配列のサイズまで開始します
-
arr [k]
で温度を設定します -
0から行列の列サイズまで別のループFORを開始します
-
ループ内で、IF temp =matrix [i] [j]を確認してから、カウントを1ずつ増やします
-
すべての行の変更後に更新するには、カウントを0に設定します
-
すべての行を変更する前のカウントの値を出力します。
効率的なアプローチ
-
整数要素の配列と行および列のサイズの行列を入力します
-
配列のサイズを計算し、配列、行列、配列のサイズを関数に渡してさらに処理します
-
0から行列の行サイズまでループFORを開始します
-
unordered_mapタイプの変数を作成します
-
0から行列の列サイズまで別のループFORを開始します
-
matrix[i][j]を1として順序付けされていないマップを設定します
-
一時変数countを取得して、行列行に存在する要素の数を格納します。
-
ループ内で、FORを0から配列のサイズまで開始します
-
IF um [arr [j]] ==1を確認してから、カウントを1ずつ増やします
-
すべての行を変更する前のカウントの値を出力します。
例(素朴なアプローチ)
#include<bits/stdc++.h> using namespace std; #define row 3 #define col 3 void arr_matrix(int matrix[row][col], int arr[], int size){ int count = 0; //for matrix row for(int i=0; i<row; i++){ //for array for(int k=0 ; k<size ; k++){ int temp = arr[k]; //for matrix col for(int j = 0; j<col; j++){ if(temp == matrix[i][j]){ count++; } } } cout<<"Elements of array in row "<< i + 1 <<" are: " << count << endl; count = 0; } } int main(){ int matrix[row][col] = { { 2, 4, 6 }, {3, 4, 6}, {6, 2, 1}}; int arr[] = { 2, 4, 6}; int size = sizeof(arr) / sizeof(arr[0]); arr_matrix(matrix, arr, size); }
出力
上記のコードを実行すると、次の出力が生成されます-
Elements of array in row 1 are: 3 Elements of array in row 2 are: 2 Elements of array in row 3 are: 2
例(効率的なアプローチ)
#include <bits/stdc++.h> using namespace std; #define row 3 #define col 3 void arr_matrix(int matrix[row][col], int arr[], int size){ for (int i = 0; i < row; i++){ unordered_map<int, int> um; for (int j = 0; j < col; j++){ um[matrix[i][j]] = 1; } int count = 0; for (int j = 0; j < size; j++) { if (um[arr[j]]) count++; } cout<<"Elements of array in row "<< i + 1 <<" are: " << count << endl; } } int main(){ int matrix[row][col] = { { 2, 4, 6 }, {3, 4, 6}, {6, 2, 1}}; int arr[] = { 2, 4, 6}; int size = sizeof(arr) / sizeof(arr[0]); arr_matrix(matrix, arr, size); }
出力
上記のコードを実行すると、次の出力が生成されます-
Elements of array in row 1 are: 3 Elements of array in row 2 are: 2 Elements of array in row 3 are: 2
-
C++の配列に存在するキーKの確率
サイズ「n」の配列で与えられ、タスクは、配列で利用可能な場合、与えられた要素kの確率を見つけることです。 配列内の要素の数に等しい「n」まで配列全体をトラバースし、指定された要素またはキー「k」を検索します。要素がその確率を計算するよりも配列に存在する場合は、0を出力します。 入力 arr[] = { 1, 2, 3, 4, 5, 6} K = 5 出力 probability of a key 5 in an array is :0.166 入力 arr[] = { 1,2,3,4,5,6,7 } K = 8 出力 probability of a key 5 in an
-
配列のすべての要素をC++で4で割り切れるようにするための最小手順
問題の説明 サイズnの配列が与えられた場合、タスクは、配列のすべての要素を4で割り切れるのに必要な最小ステップ数を見つけることです。ステップは、配列から任意の2つの要素を削除し、これらの要素の合計を加算することとして定義されます。アレイへ 例 入力配列が{1、2、0、2、4、3}の場合、3つの操作が必要です- 1 + 3 = 4 2 + 2 = 4 0 + 4 = 4 アルゴリズム 1. Sum of all the elements of the array should be divisible by If not, this task is not possible 2. Initi