मान लीजिए कि हमारे पास एक पूर्णांक है, जिसमें अनुक्रमिक अंक हैं यदि और केवल यदि संख्या में प्रत्येक अंक पिछले अंक से एक अधिक है। हमें श्रेणी [निम्न, उच्च] सहित सभी पूर्णांकों की एक क्रमबद्ध सूची ढूंढनी होगी जिसमें अनुक्रमिक अंक हों। तो अगर निम्न =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, ]