मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची है, हम एक नई सूची बनाएंगे जहां नई सूची में प्रत्येक तत्व मूल सूची में उस तत्व के दाईं ओर छोटे तत्वों की संख्या होगी।
उदाहरण के लिए, यदि इनपुट nums = [4, 5, 9, 7, 2] है, तो आउटपुट [1, 1, 2, 1, 0] होगा, क्योंकि 4 के दाईं ओर 1 छोटा तत्व है, 5 के दाईं ओर 1, 9 के दाईं ओर 2, 7 के दाईं ओर 1, और 2 के दाईं ओर कोई छोटा तत्व नहीं है।
इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे:
res := एक नई सूची,inc := एक नई सूची।जब तक
numsखाली नहीं है:num := nums से अंतिम तत्व हटाएं।bisect_leftका उपयोग करकेincमेंnumको डालने के लिए सबसे बाएं इंडेक्स कोresके अंत में जोड़ें।numकोincमें सॉर्टेड क्रम में डालें।
res[::-1](उलटी सूची) लौटाएं।
उदाहरण
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]