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

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

王林
リリース: 2023-09-10 09:29:13
転載
637 人が閲覧しました

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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート