C++ を使用して、合計が奇数の部分配列の数を見つけるコードを作成します。
サブ配列は、配列の連続した部分です。たとえば、配列 [5, 6, 7, 8] を考えると、(5)、(6)、(7)、(8)、(5、6 など) 10 個の空ではないサブ配列があります。 )、(6、7)、(7、8)、(5、6、7)、(6、7、8)、(5、6、7、8)。
このガイドでは、奇数の合計を持つ部分配列の数を見つけるために C で考えられるすべての情報を説明します。奇数の和の部分配列の数を求めるには、さまざまな方法を使用できます。そのため、ここに簡単な例を示します。 -
Input : array = {9,8,7,6,5} Output : 9 Explanation : Sum of subarray - {9} = 9 {7} = 7 {5} = 5 {9,8} = 17 {8,7} = 15 {7,6} = 13 {6,5} = 11 {8,7,6} = 21 {9,8,7,6,5} = 35
ブルート フォース メソッド
この方法により、単純に次の合計であるかどうかを確認できます。すべてのサブ配列の要素が偶数または奇数である場合、そのサブ配列を拒否し、合計が奇数であるサブ配列をカウントします。このコードの複雑さは O(n2)。
例
#include <bits/stdc++.h> using namespace std; int main(){ int n=5, temp = 0; int a[n-1] = { 9,8,7,6,5 } ; // declaring our array. int cnt = 0; // counter variable. for(int i = 0; i < n; i++){ temp = 0; // refreshing our temp sum. for(int j = i; j < n; j++){ // this loop will make our subarrays starting from i till n-1. temp = temp + a[j]; if( temp % 2 == 1 ) cnt++; } } cout << "Number of subarrays with odd sum : " << cnt << "\n"; return 0; }
出力
Number of subarrays with odd sum : 9
上記のコードの説明
このコードではネストされたループが使用されており、外側のループはインクリメントに使用されます。 I の値、I は配列の先頭からの各値を指します。内側のループは、位置 " i " で始まる部分配列を奇数の合計で見つけるために使用されます。
効率的な方法
この方法では、配列の 0 番目の位置からすべての要素を処理します。現在の要素が奇数の場合は、偶数ごとに奇数カウンタをインクリメントし、偶数カウンタをインクリメントします。奇数が見つかった場合、部分配列に奇数を追加するとパリティが変更されるため、偶数と奇数の値が交換され、最後にカウントが結果に追加されます。各要素を処理しているため、このコードの複雑さは O(n) です。
例
#include <bits/stdc++.h> using namespace std; int main(){ int odd = 0, even = 0, result = 0,n=5,i,temp; int arr[ n-1 ] = { 9,8,7,6,5}; // initialising the array // for loop for processing every element of array for ( i = 0 ; i < n ; i ++ ) { if ( arr[ i ] % 2 == 0 ) { even++; } else { // swapping even odd values temp = even; even = odd; odd = temp + 1; } result += odd; } cout << "Number of subarrays with odd sum : " << result; }
出力
Number of subarrays with odd sum : 9
上記コードの説明
このコードでは、各要素の偶数/奇数をチェックし、値をインクリメントします。偶数の場合は偶数カウンタを、奇数の場合は奇数カウンタをインクリメントします。さらに、奇数が見つかった場合はパリティ カウンタ値を交換し、そうでない場合はサブ配列のパリティを変更します。次に、各反復後に奇数カウンタの値を結果変数に追加します。
結論
この記事では、合計が奇数のサブ配列に対して Brute から数値強制メソッドを見つけ、合計が奇数の各サブ配列を生成し、カウントをインクリメントする方法を説明しました。このコードの時間計算量は O(n2) です。これを効率的に行う方法は、配列の各要素を反復処理し、見つかった奇数/偶数ごとに奇数/偶数カウンタ変数をインクリメントし、奇数が見つかった場合はカウンタを交換することです。このコードの時間計算量は O( n)。この記事が問題と解決策の理解に役立つことを願っています。
以上がC++ を使用して、合計が奇数の部分配列の数を見つけるコードを作成します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

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

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

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

2 つの整数配列があり、1 つは計算された要素を含み、もう 1 つは配列を分割してサブセットを生成するために必要な分割点を含みます。分割ごとに各サブセットの合計を計算し、最大のサブセットを返す必要があります。例を見てみましょう理解: - input -intarr[]=intarr[]={9,4,5,6,7}intsplitPoints[]={0,2,3,1}; Output - 各分割後の最大部分配列合計 [ 22, 13,9,9] 説明 - ここでは、分割点に従って配列を分解し、各分割後と最初の分割後の最大サブセットを取得します → {9} と {4,5,6,7 }>>最大合計2 番目の分割後の部分配列の数は -22 → {9},{4

級数の合計を求めることは、プログラミングとロジック構築を学ぶ際の最も簡単な練習タスクの 1 つです。数学では、異なる系列に存在する系列の合計を求める方法があります。プログラミングでは、ロジックを実装することによってそれらを 1 つずつ生成し、それらを繰り返し追加して合計を取得したり、必要に応じて他の処理を実行します。この記事では、C++を使用してNまでの奇数の合計を求める手法を紹介します。この合計を取得するには 2 つの方法がありますが、少し工夫が必要です。これらの方法を 1 つずつ見てみましょう。アルゴリズムの上限は N です。合計を0に初期化します。 i の範囲は 1 から N までです。 i が奇数の場合は、次のようになります。合計:=合計+i。それが終わったら。合計を表示します。例#include<iostre

この記事では、C++ を使用して、最大値と最小値が同じ部分配列の数を求める問題を解決します。以下は問題の例です。 -入力:array={2,3,6,6,2,4,4,4}出力:12説明:{2},{3},{6},{6}, {2 }、{4}、{4}、{4}、{6,6}、{4,4}、{4,4}、および {4,4,4} は、同じ最大要素と最小要素で形成できるサブ配列です。入力: 配列 = {3, 3、1、5、

N 分ツリーが与えられた場合、私たちのタスクは、ツリーを横断する方法の合計数を見つけることです。例: 上記のツリーの場合、出力は 192 になります。この問題を解決するには、組み合わせ論の知識が必要です。この問題では、各パスの可能な組み合わせをすべてチェックするだけで答えが得られます。解を見つける方法 この方法では、階層の走査を実行し、各ノードが持つ子の数を確認し、その答えを階乗的に乗算するだけです。上記のメソッド #include<bits/stdc++.h>usingnamespacestd;structNode{//s の C++ コード例
