मान लीजिए कि हमारे पास एक पूर्णांक है, जिसमें अनुक्रमिक अंक हैं यदि और केवल यदि संख्या में प्रत्येक अंक पिछले अंक से एक अधिक है। हमें श्रेणी [निम्न, उच्च] सहित सभी पूर्णांकों की एक क्रमबद्ध सूची ढूंढनी होगी जिसमें अनुक्रमिक अंक हों। तो अगर निम्न =100 और उच्च =300, तो आउटपुट [123,234]
. होगाइसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- एक सरणी रेस बनाएं
- मैं के लिए 1 से n की सीमा में
- j :=1 के लिए j + i - 1 <=9
- . तक
- x :=0
- k के लिए 0 से i - 1 की श्रेणी में
- x :=10x + (j + k)
- यदि निम्न
- j :=1 के लिए j + i - 1 <=9
- वापसी उत्तर
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
#include <bits/stdc++.h>
using namespace std;
void print_vector(vector<auto> v){
cout << "[";
for(int i = 0; i<v.size(); i++){
cout << v[i] << ", ";
}
cout << "]"<<endl;
}
class Solution {
public:
vector<int> sequentialDigits(int low, int high) {
vector <int> ans;
for(int i = 1; i <= 9; i++){
for(int j = 1; j + i - 1 <= 9; j++){
int x = 0;
for(int k = 0; k < i; k++){
x = (x*10) + (j + k);
}
if(low <= x && x <= high){
ans.push_back(x);
}
}
}
return ans;
}
};
main(){
Solution ob;
print_vector(ob.sequentialDigits(500, 5000));
} इनपुट
500 5000
आउटपुट
[567, 678, 789, 1234, 2345, 3456, 4567, ]