मान लीजिए कि हमारे पास n तत्वों के साथ एक सरणी A है। बता दें, अमल एक बहुमंजिला इमारत के अंदर सीढ़ियां चढ़ता है। हर बार जब वह चढ़ता है, तो 1 से गिनना शुरू करें। उदाहरण के लिए, यदि वह 3 कदम और 4 कदम के साथ दो सीढ़ियां चढ़ता है, तो वह 1, 2, 3, 1, 2, 3, 4 जैसी संख्याएं बोलेगा। सरणी A में, संख्याएँ अमल द्वारा कही गई सीढ़ी संख्याओं का प्रतिनिधित्व कर रही हैं। हमें यह गिनना है कि वह कितनी सीढ़ियाँ चढ़े थे, साथ ही प्रत्येक सीढ़ी में सीढ़ियों की संख्या भी छापनी है।
इसलिए, यदि इनपुट A =[1, 2, 3, 1, 2, 3, 4, 5] जैसा है, तो आउटपुट 2, [3, 5]
होगा।कदम
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
p = 0 n := size of A for initialize i := 0, when i < n, update (increase i by 1), do: if A[i] is same as 1, then: (increase p by 1) print p for initialize i := 1, when i < n, update (increase i by 1), do: if A[i] is same as 1, then: print A[i - 1] print A[n - 1]
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
#include <bits/stdc++.h> using namespace std; void solve(vector<int> A) { int i, p = 0; int n = A.size(); for (i = 0; i < n; i++) { if (A[i] == 1) p++; } cout << p << endl; for (i = 1; i < n; i++) { if (A[i] == 1) cout << A[i - 1] << ", "; } cout << A[n - 1]; } int main() { vector<int> A = { 1, 2, 3, 1, 2, 3, 4, 5 }; solve(A); }
इनपुट
{ 1, 2, 3, 1, 2, 3, 4, 5 }
आउटपुट
2 3, 5