尋找非空且和為偶數的子串長度的 C++ 程式
假設我們有一個包含 n 個元素的陣列 A。我們必須找到其元素的一個非空子集,其元素之和為偶數。如果沒有這樣的子集,則返回 -1。
因此,如果輸入類似於 A = [1, 3, 7],則輸出將是 2,因為 [1, 3] 的和為 4。
步驟
為此,我們將按照以下步驟進行 −
n := size of A for initialize i := 0, when i < n, update (increase i by 1), do: if A[i] mod 2 is same as 0, then: k := i + 1 if n is 1 AND k is 0, then: return -1 otherwise when k is not equal to 0, then: return 1 Otherwise return 2
示例
讓我們看看以下實現來加深理解 −
#include <bits/stdc++.h>
using namespace std;
int solve(vector<int> A) {
long n = A.size(), k = 0;
for (long i = 0; i < n; i++) {
if (A[i] % 2 == 0) {
k = i + 1;
}
}
if (n == 1 & k == 0) {
return -1;
}
else if (k != 0) {
return 1;
} else {
return 2;
}
}
int main() {
vector<int> A = { 1, 3, 7 };
cout << solve(A) << endl;
}輸入
{ 1, 3, 7 }輸出
2
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
JavaScript
PHP