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

C++でソートされた配列の多数決要素を確認します


配列があるとします。与えられた数xがその配列の多数決要素であるかどうかをチェックする必要があります。配列がソートされます。 1つの要素は、配列にn / 2回出現する場合、多数決要素と呼ばれます。配列が{1、2、3、3、3、3、6}、x =3のようなものであるとすると、3は配列の多数決要素であるため、答えは真です。 3は4つあります。配列のサイズは7なので、4>7/2と表示されます。

配列内のxの出現を数えることができ、その数がn / 2より大きい場合、答えはtrueになり、そうでない場合はfalseになります。

#include <iostream>
#include <stack>
using namespace std;
bool isMajorityElement(int arr[], int n, int x){
   int freq = 0;
   for(int i = 0; i<n; i++){
      if(arr[i] == x )
         freq++;
      if(arr[i] > x)
         break;
   }
   return (freq > n/2);
}
int main() {
   int arr[] = {1, 2, 3, 3, 3, 3, 6};
   int n = sizeof(arr)/sizeof(arr[0]);
   int x = 3;
   if (isMajorityElement(arr, n, x))
      cout << x << " is the majority element of the array";
   else
      cout << x << " is not the majority element of the array";
}

出力

3 is the majority element of the array

  1. C++で配列のビットノイズをチェックするプログラム

    N個の整数の配列arr[N]が与えられた場合、タスクは、与えられた配列がバイトニックであるかどうかをチェックすることです。指定されたアレイがバイトニックである場合は、「はい、バイトニックアレイです」と出力します。そうでない場合は、「いいえ、バイトニックアレイではありません」と出力します。 Bitonicアレイとは、アレイが最初に厳密に昇順で、次に厳密に降順である場合です。 この配列のように、arr [] ={1、2、3、4、2、-1、-5}はバイトニック配列です。これは、4までは厳密に昇順であり、4以降は厳密に降順であるためです。 入力 arr[] = {1, 3, 5, 4,

  2. Pythonの並べ替えられた配列で数値が多数決要素であるかどうかを確認する

    numsという名前の配列があり、降順ではない順序で並べ替えられ、数値ターゲットがあるとします。ターゲットが過半数の要素であるかどうかを確認する必要があります。配列では、多数決要素は、長さNの配列でN / 2回以上出現する要素です。したがって、配列が-[2,4,5,5,5,5,5,6,6]のようである場合ターゲットが5の場合、出力はtrueです。 これを解決するには、次の手順に従います- 2つの支援モジュール、lower()とupper()があります。これらは次のとおりです。 lower()は、配列arrとtargetの2つの引数、つまり-を取ります。 低:=0、高:=到着の長さ 低<高