मान लीजिए कि हमारे पास पूर्णांकों की एक सरणी है; हमें सबसे लंबे समय तक लगातार बढ़ते हुए उप-सरणी की लंबाई का पता लगाना है।
इसलिए, यदि इनपुट [2,4,6,5,8] जैसा है, तो आउटपुट 3 होगा। चूंकि सबसे लंबे समय तक लगातार बढ़ने वाला क्रम [2,4,6] है, और इसकी लंबाई 3 है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- यदि अंकों का आकार <=1, तो −
- अंकों का वापसी आकार
- उत्तर:=1, गणना:=1
- इनिशियलाइज़ i :=0 के लिए, जब i <अंकों का आकार, अपडेट करें (i से 1 बढ़ाएँ), करें -
- यदि अंक[i] <अंक [i + 1], तो −
- (गिनती 1 से बढ़ाएं)
- उत्तर:=अधिकतम उत्तर और गणना
- अन्यथा
- गिनती :=1
- यदि अंक[i] <अंक [i + 1], तो −
- वापसी का जवाब
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
int findLengthOfLCIS(vector<int>& nums) {
if (nums.size() <= 1)
return nums.size();
int answer = 1, count = 1;
for (int i = 0; i < nums.size() - 1; i++) {
if (nums[i] < nums[i + 1]) {
count++;
answer = max(answer, count);
}
else {
count = 1;
}
}
return answer;
}
};
main(){
Solution ob;
vector<int> v = {2,4,6,5,8};
cout << (ob.findLengthOfLCIS(v));
} इनपुट
{2,4,6,5,8} आउटपुट
3