目次
解決方法
Example
Output
上記のコードの説明
効率的な方法
出力
結論
ホームページ バックエンド開発 C++ C++ を使用して、同じ最小値と最大値を持つ部分配列の数を見つけるコードを作成します。

C++ を使用して、同じ最小値と最大値を持つ部分配列の数を見つけるコードを作成します。

Aug 25, 2023 pm 11:33 PM
最大値 最小値 Cプログラミング サブアレイ

C++ を使用して、同じ最小値と最大値を持つ部分配列の数を見つけるコードを作成します。

この記事では、C を使用して、同じ最大値と最小値を持つ部分配列の数を見つける問題を解決します。以下にこの問題の例を示します。

Input : array = { 2, 3, 6, 6, 2, 4, 4, 4 }
Output : 12
Explanation : {2}, {3}, {6}, {6}, {2}, {4}, {4}, {4}, {6,6}, {4,4}, {4,4} and { 4,4,4 } are the subarrays which can be formed with maximum and minimum element same.

Input : array = { 3,3,1,5,1,2,2 }
Output : 9
Explanation : {3}, {3}, {1}, {5}, {1}, {2}, {2}, {3,3} and {2,2} are the subarrays which can be formed with minimum and maximum are the same.
ログイン後にコピー

解決方法

例として、以下に等しい同じ最小要素と最大要素を使用して、最小数の部分配列を形成できると言えます。配列のサイズ。連続する番号が同じ場合、サブ配列の数はさらに多くなる可能性があります。

そこで、各要素を走査し、連続する番号が同じかどうかをチェックする方法を使用できます。連続した番号が同じ場合はカウントが増加し、異なる番号が見つかった場合は、内側のループが実行されます。中断される。

内部ループが終了するか中断されるたびに、結果変数がインクリメントされ、最終的に結果変数が表示されます。

p>

Example

#include <bits/stdc++.h>
using namespace std;
int main(){
    int a[ ] = { 2, 4, 5, 3, 3, 3 };
    int n = sizeof(a) / sizeof(a[0]);
        int result = n, count =0;
    for (int i = 0; i < n; i++) {
        for (int j = i+1; j < n; j++) {
            if(a[i]==a[j])
                count++;
            else
                break;
        }
        result+=count;
        count =0;
    }
    cout << "Number of subarrays having minimum and maximum elements same:" << result;
    return 0;
}
ログイン後にコピー

Output

Number of subarrays having minimum and maximum elements same: 9
Time complexity = O(n<sup>2</sup>).
ログイン後にコピー

上記のコードの説明

このコードでは、変数 n を使用して、配列 のサイズ、結果 = n。これは、少なくとも n 個の部分配列を形成でき、同じ数のカウントが計算されるためです。

外側のループは、配列内の各要素を処理するために使用されます。内側のループは、インデックス要素の後に連続する同一の数値がいくつあるかを見つけるために使用され、内側のループの最後で、結果変数とともにカウント変数をインクリメントします。最後に、結果変数に保存された出力が表示されます。

効率的な方法

この方法では、各要素を反復処理し、各要素について、連続する同じ数字がいくつあるかを検索します。見つかった同じ数値ごとに count 変数をインクリメントし、異なる数値が見つかったら、式 "n = n*(n 1)/2" 配列を使用して形成できる細分化の数を見つけて増分します。結果変数。

#include <bits/stdc++.h>
using namespace std;
int main(){
    int a[] = { 2, 4, 5, 3, 3, 3 };
    int n = sizeof(a) / sizeof(a[0]);
        int result = 0;
    int count =1,temp=a[0];
    for (int i = 1; i < n; i++) {
        if (temp==a[i]){
            count++;
        }
        else{
            temp=a[i];
            result = result + (count*(count+1)/2);
            count=1;
        }
    }
    result = result + (count*(count+1)/2);
    cout <<  "Number of subarrays having minimum and maximum elements same:" << result;
    return 0;
}
ログイン後にコピー

出力

Number of subarrays having minimum and maximum elements same: 9
Time complexity : O(n)
ログイン後にコピー

上記のコードの説明

このコードでは、配列の 0 番目のインデックスを temp 変数に格納します。そしてインデックス 1 からループを開始します。 temp 変数が現在のインデックスの要素と等しいかどうかを確認し、同じ数が見つかった場合はカウントを 1 ずつ増分します。 temp 変数がインデックス要素と等しくない場合は、同じ数を数えることによって導出できる部分配列の組み合わせを見つけ、結果を結果変数に格納します。一時的な値を現在のインデックスに変更し、カウントを 1 にリセットします。最後に、結果変数に格納されている答えを表示します。

結論

この記事では、同じ最小要素と最大要素を持つ部分配列の数を見つける問題を解決しました。また、この問題を解決する C プログラムと、この問題を解決する完全な方法 (通常かつ効率的) も学びました。同じプログラムを C、Java、Python などの他の言語で書くことができます。この記事がお役に立てば幸いです。

以上がC++ を使用して、同じ最小値と最大値を持つ部分配列の数を見つけるコードを作成します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

math.Max 関数を使用して、一連の数値の最大値を取得します math.Max 関数を使用して、一連の数値の最大値を取得します Jul 24, 2023 pm 01:24 PM

math.Max 関数を使用して、一連の数値の最大値を取得します。数学やプログラミングでは、一連の数値の最大値を見つけることが必要になることがよくあります。 Go 言語では、数学パッケージの Max 関数を使用してこの関数を実現できます。この記事では、 math.Max 関数を使用して一連の数値の最大値を取得する方法と、対応するコード例を紹介します。まず、数学パッケージをインポートする必要があります。 Go 言語では、以下に示すように、import キーワードを使用してパッケージをインポートできます。

OpenOOD アップデート v1.5: 包括的かつ正確な配布外検出コード ライブラリとテスト プラットフォーム、オンライン ランキングとワンクリック テストをサポート OpenOOD アップデート v1.5: 包括的かつ正確な配布外検出コード ライブラリとテスト プラットフォーム、オンライン ランキングとワンクリック テストをサポート Jul 03, 2023 pm 04:41 PM

配布外 (OOD) の検出は、オープンワールドのインテリジェント システムの信頼性の高い動作に不可欠ですが、現在のオブジェクト指向の検出方法では「評価の不一致」(評価の不一致) が発生します。以前の作品 OpenOODv1 は OOD 検出の評価を統合しましたが、スケーラビリティと使いやすさには依然として制限がありました。最近、開発チームは OpenOODv1.5 を再度提案し、以前のバージョンと比較して、新しい OOD 検出手法の評価は、精度の確保、標準化、使いやすさの点で大幅に改善されました。イメージペーパー: https://arxiv.org/abs/2306.09301OpenOODCodebase:htt

知識を増やしましょう!論理ルールを使用した機械学習 知識を増やしましょう!論理ルールを使用した機械学習 Apr 01, 2023 pm 10:07 PM

適合率-再現率曲線では、同じ点が異なる軸でプロットされます。警告: 左側の最初の赤い点 (再現率 0%、精度 100%) は 0 ルールに対応します。左側の 2 番目のドットが最初のルール、というように続きます。 Skope-rules は、ツリー モデルを使用してルール候補を生成します。まず、いくつかのデシジョン ツリーを構築し、ルート ノードから内部ノードまたはリーフ ノードまでのパスをルール候補として検討します。これらの候補ルールは、適合率や再現率などの事前定義された基準によってフィルタリングされます。精度と再現率がしきい値を超えるものだけが保持されます。最後に、類似性フィルタリングを適用して、十分な多様性を持つルールを選択します。一般に、スコープ ルールは、それぞれの根本原因を学習するために適用されます。

C++ を使用して N 番目の非平方数を見つけるコードを作成する C++ を使用して N 番目の非平方数を見つけるコードを作成する Aug 30, 2023 pm 10:41 PM

私たちは皆、2、3、5、7、8 など、数の 2 乗ではない数字を知っています。非正方形の数は N 個あり、すべての数を知ることは不可能です。そこで、この記事では、平方なしまたは非平方数と、C++ で N 番目の非平方数を見つける方法についてすべて説明します。 N 番目の非平方数 数値が整数の 2 乗である場合、その数値は完全平方と呼ばれます。完全平方数の例としては、-1issquareof14issquareof29issquareof316issquareof425issquareof5 などがあります。数値がどの整数の平方でもない場合、その数値は非正方形と呼ばれます。たとえば、最初の 15 個の非平方数は -2、3、5、6 です。

Javaのランタイムによって提供されるパラメータの数を確認するにはどうすればよいですか? Javaのランタイムによって提供されるパラメータの数を確認するにはどうすればよいですか? Sep 23, 2023 pm 01:13 PM

Java では、実行時にパラメータを渡す 1 つの方法は、コマンド ラインまたはターミナルを使用することです。コマンド ライン パラメーターのこれらの値を取得する場合、実行時にユーザーが指定したパラメーターの数を見つける必要がある場合があります。これは、length 属性を使用して実現できます。この記事は、サンプル プログラムを使用して、ユーザーが指定した数のパラメーターを渡したり取得したりするプロセスを説明することを目的としています。実行時にユーザーが指定した引数の数を取得する コマンド ライン引数の数を調べる前に、最初のステップとして、ユーザーが実行時に引数を渡せるようにするプログラムを作成します。 String[] パラメータ Java プログラムを作成するとき、main() メソッドに遭遇することがよくあります。 JVM がこのメソッドを呼び出すと、Java アプリケーションが実行を開始します。 String[]args という引数とともに使用されます。

Cプログラミングで円の面積を求める Cプログラミングで円の面積を求める Aug 25, 2023 pm 10:57 PM

円は閉じた図形です。円上のすべての点は、円内の点から等距離にあります。中心点を円の中心といいます。点から円の中心までの距離を半径といいます。面積は、閉じた図形の寸法の範囲を定量的に表現したものです。円の面積は、円の寸法内に囲まれた面積です。円の面積を計算する式、Area=π*r*r 面積を計算するには、円の半径を入力として与え、その式を使用して面積を計算します。アルゴリズム STEP1: stdinput を使用してユーザーからの入力として半径を取得します。STEP2 : area=( を使用して円の面積を計算します。

C++で書かれた配列の右回転のための反転アルゴリズム C++で書かれた配列の右回転のための反転アルゴリズム Sep 08, 2023 pm 08:17 PM

この記事では、指定された配列を k 要素分右に回転する逆転アルゴリズムについて学びます。たとえば、−Input:arr[]={4,6,2,6,43,7,3,7}、 k= 4出力:{43,7,3,7,4,6​​,2,6}説明:配列の各要素を 4 要素ずつ右に回転すると、{43,7,3,7,4,6​​,2,6} が得られます。入力:arr[]= {8 ,5,8,2,1,4,9,3},k=3出力:{4,9,3,8,5,8,2,1} 解決策を見つける

Linuxコマンド:Telnetプロセス数の確認方法 Linuxコマンド:Telnetプロセス数の確認方法 Mar 01, 2024 am 11:39 AM

Linux コマンドは、システム管理者の日常業務に欠かせないツールの 1 つであり、さまざまなシステム管理タスクの実行に役立ちます。運用保守作業では、問題を検出して適時に調整するために、システム内の特定のプロセスの番号を確認する必要がある場合があります。この記事では、Linuxコマンドを使用してTelnetプロセス数を確認する方法を紹介しますので、一緒に学びましょう。 Linux システムでは、ps コマンドと grep コマンドを組み合わせて使用​​すると、Telnet プロセスの数を表示できます。まず、ターミナルを開く必要があります。

See all articles