मान लीजिए हमारे पास 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