यहां हम एक दिलचस्प समस्या देखेंगे, हमें एक जोड़ी (x, y) मिलेगी, जहां x और y श्रेणी में हैं इसलिए l <=x, y <=r, जोड़ी में एक संपत्ति होगी, x का मान y को विभाजित करता है . यदि कई जोड़े उपलब्ध हैं, तो केवल एक को चुनें।
हम इस समस्या को O(1) समय में हल कर सकते हैं, यदि हमें निचली सीमा l और 2l का मान प्राप्त हो। हम जानते हैं कि y/x का सबसे छोटा मान 2 हो सकता है, और यदि रेंज में कुछ बड़ा मान मौजूद है तो 2 रेंज में होगा। और अगर हम x बढ़ाते हैं, तो यह भी 2x बढ़ जाएगा, इसलिए l और 2l दी गई सीमा में आने वाला न्यूनतम जोड़ा होगा।
उदाहरण
#include<iostream> using namespace std; void getPair(int l, int r) { int x = l; int y = 2 * l; cout << "(" << x << ", " << y << ")" << endl; } int main() { int l = 3, r = 6; getPair(l, r); }
आउटपुट
(3, 6)