हमें आकार N की पूर्णांकों की एक सरणी दी गई है। वेरिएबल L और R 1 और N के बीच एक रेंज को परिभाषित करते हैं। लक्ष्य उस रेंज L और R में सबसे छोटे तत्वों की संख्या ढूंढना है जैसे कि L>=1 और R<=N।
हम इसे रेंज L और R में स्थित तत्वों को पार करके और सबसे छोटा ढूंढकर करेंगे।
फिर से, रेंज L और R के तत्वों को पार करते हैं और काउंट बढ़ाते हैं यदि कोई तत्व चरण 1 में गणना किए गए सबसे छोटे के बराबर है।
आइए उदाहरणों से समझते हैं।
इनपुट - arr[]= { 1,2,3,0,3,2,0,1 }, N=8, L=2, R=5
आउटपुट - रेंज में सबसे छोटे की संख्या: 1
व्याख्या -
रेंज L(1) से R(5) में तत्व arr[1] से arr[4] हैं। { 2,3,0,3 }। सबसे छोटा मान 0 है। 0 की संख्या 1 है।
इनपुट - arr[]= { 1,2,3,0,3,2,0,1 }, N=8, L=3, R=8
आउटपुट - रेंज में सबसे छोटे की संख्या: 2
व्याख्या -
रेंज L(3) से R(8) में तत्व arr[2] से arr[7] हैं। { 3,0,3,2,0,1 }। सबसे छोटा मान 0 है। 0 की संख्या 2 है।
नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण
हम यादृच्छिक संख्याओं से आरंभ एक पूर्णांक सरणी arr[] लेते हैं।
पूर्णांक L और R arr[] के अंदर रेंज को दर्शाते हैं। काउंट रेंज L और R में सबसे छोटे की गिनती स्टोर करता है।
फंक्शन countSmallest(int arr[],int n,int l, int r) एक सरणी, उसकी लंबाई, L और R को इनपुट के रूप में लेता है और रेंज में सबसे छोटे की गिनती लौटाता है।
सबसे छोटे को arr[l] के रूप में आरंभ करते हैं, बायां तत्व और सबसे छोटे की प्रारंभिक गिनती 0।
अब यदि l<0 और r>=n तो 0 लौटाते हैं, अमान्य रेंज प्रदान की गई।
सरणी को इंडेक्स l-1 से r-1 तक पार करना शुरू करते हैं। यदि arr[i]<सबसे छोटा तो सबसे छोटे को अपडेट करते हैं।
फिर से, सरणी को l-1 से r-1 तक पार करते हैं, यदि arr[i]==सबसे छोटा, तो काउंट बढ़ाते हैं।
काउंट को वांछित परिणाम के रूप में लौटाते हैं।
मुख्य फंक्शन के अंदर, काउंट में मौजूद परिणाम प्रदर्शित करते हैं।
उदाहरण
#include <bits/stdc++.h> using namespace std; // संख्या अभाज्य है या नहीं जांचने का फंक्शन int countSmallest(int arr[],int n,int l, int r){ int smallest=arr[l]; int count=0; if(l<0 && r>=n) return 0; for(int i=l-1;i आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा -
दी गई रेंज में सबसे छोटे की संख्या: 2 दी गई रेंज में सबसे छोटे की संख्या: 2