मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है, हम एक नई सूची बनाएंगे जहां नई सूची में प्रत्येक तत्व मूल इनपुट सूची में उस तत्व के दाईं ओर छोटे तत्वों की संख्या है।
इसलिए, यदि इनपुट अंकों की तरह है =[4, 5, 9, 7, 2], तो आउटपुट [1, 1, 2, 1, 0] होगा, क्योंकि 4 के दाईं ओर 1 छोटा तत्व है, वहाँ 5 के दाईं ओर 1 छोटा तत्व है, 9 के दाईं ओर 2 छोटे तत्व हैं, 7 के दाईं ओर 1 छोटा तत्व है, 2 के दाईं ओर कोई छोटा तत्व नहीं है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
रेस:=एक नई सूची, इंक:=एक नई सूची
-
जबकि अंक खाली नहीं हैं, करें
-
अंक:=अंकों से अंतिम तत्व हटाएं
-
रेस के अंत में इंक में num डालने के लिए सबसे बाईं ओर इंडेक्स डालें
-
इंक में अंक डालने के बाद क्रमबद्ध सूची
-
-
एक सूची res [सूचकांक 0 से अंत तक]
लौटाएं
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें-
उदाहरण
import bisect class Solution: def solve(self, nums): res, inc = [], [] while nums: num = nums.pop() res.append(bisect.bisect_left(inc, num)) bisect.insort(inc, num) return res[::-1] ob = Solution() nums = [4, 5, 9, 7, 2] print(ob.solve(nums))
इनपुट
[4, 5, 9, 7, 2]
आउटपुट
[1, 1, 2, 1, 0]