用 C++ 查詢和為偶數的子陣列數量
在這個問題中,我們給定了一個由 N 個元素組成的陣列 arr[]。我們的任務是找出和為偶數的子陣列。
我們舉一個例子來理解這個問題,
輸入
arr[] = {2, 1, 3, 4, 2, 5}輸出
28
說明
子陣列為 -
{2}, {4}, {2}, {2, 4}, {2, 2}, {1, 3}, {1, 5}, {3, 5}, {4, 2}, {2, 1, 3}, {2, 1, 5}, {2, 3, 5}, {2, 4, 2}, {1, 3, 4}, {1, 3, 2}, {1, 4, 5}, {1, 2, 5}, {3, 4, 5}, {3, 2, 5}, {2, 1, 3, 4}, {2, 1, 3, 2}, {2, 3, 4, 5}, {2, 3, 2, 5}, {2, 4, 2, 5}, {1, 3, 4, 2}, {1, 4, 2, 5}, {3, 4, 2, 5}, {2, 1, 3, 4, 2}, {2, 1, 3, 4, 2, 5}解決方案
解決這個問題的一個簡單方法是使用直接方法,即計算所有子陣列及其和。並對和為偶數的子陣列增加計數。最後返回計數。
展示我們解決方案工作原理的程式,
示例
#include<iostream>
using namespace std;
int countEvenSumSubArray(int arr[], int n){
int evenSumCount = 0, sum = 0;
for (int i=0; i<=n-1; i++){
sum = 0;
for (int j=i; j<=n-1; j++){
sum += arr[j];
if (sum % 2 == 0)
evenSumCount++;
}
}
return (evenSumCount);
}
int main(){
int arr[] = {2, 1, 4, 2};
int n = sizeof (arr) / sizeof (arr[0]);
cout<<"The count of Subarrays with even sum is "<<countEvenSumSubArray(arr, n);
return (0);
}輸出
The number of solutions of the linear equation is 8
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP