ホームページ  >  記事  >  バックエンド開発  >  C++ で書かれており、すべての要素が X より大きいセグメントの数を見つけます。

C++ で書かれており、すべての要素が X より大きいセグメントの数を見つけます。

王林
王林転載
2023-09-10 09:29:13618ブラウズ

C++ で書かれており、すべての要素が X より大きいセグメントの数を見つけます。

この記事では、指定されたシーケンス内の指定された数値 X より大きいセグメントまたはサブ配列の数を見つける必要があります。

重なり合うセグメントは 1 回のみカウントできます。隣接する 2 つの要素またはセグメントを別々にカウントすることはできません。ここに与えられた問題の基本的な例を示します。 -

Input : arr[ ] = { 9, 6, 7, 11, 5, 7, 8, 10, 3}, X = 7
Output : 3
Explanation : { 9 }, { 11 } and { 8, 10 } are the segments greater than 7

Input : arr[ ] = { 9, 6, 12, 2, 11, 14, 8, 14 }, X = 8
Output : 4
Explanation : { 9 }, { 12 }, { 11, 14 } and { 14 } are the segments greater than 8

解決策を見つける方法

単純な方法

この問題では、変数を 0state で初期化します。 そして、指定された配列の処理を開始します。X より大きい要素が見つかったら、状態を 1 に変更して要素の処理を続行します。X 以下の数値が見つかったら、そのたびに状態を 0 に戻します。ステータスが 1 に変化して戻ると、カウントは 1 増加して 0 になります。

#include <bits/stdc++.h>
using namespace std;
int main (){
    int a[] = { 9, 6, 12, 2, 11, 14, 8, 14 };
    int n = sizeof (a) / sizeof (a[0]);
    int X = 8;
    int state = 0;
    int count = 0;
    // traverse the array
    for (int i = 0; i < n; i++){
        // checking whether element is greater than X
        if (a[i] > X){
           state = 1;
        }
        else{
           // if flag is true
           if (state)
               count += 1;
            state = 0;
        }
    }
    // checking for the last segment
    if (state)
        count += 1;
    cout << "Number of segments where all elements are greater than X: " << count;
    return 0;
}

出力

Number of segments where all elements are greater than X: 4

上記プログラムの説明

上記プログラムでは、数値がより大きい場合に状態をスイッチとして使用します。 X が見つかりました。X より大きい数値が見つかった場合は 1 に設定されます。X 以下の数値が見つかった場合は 0 に設定されます。最後に、count に保存された結果を出力します。

結論 h2>

この記事では、セグメントが存在するたびに状態を 1 と 0 に設定する方法を適用することで、すべての要素が X より大きいセグメントの数を見つける問題を解決しました。見つかった。このプログラムは、C、Java、Python などの他のプログラミング言語で作成できます。

以上がC++ で書かれており、すべての要素が X より大きいセグメントの数を見つけます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。