Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

Python में वह इंडेक्स खोजें जहां एलिमेंट डालने से सूची सॉर्टेड रहे

मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची है, वे आरोही क्रम में सॉर्टेड हैं, हमारे पास एक और संख्या target है, हमें वह इंडेक्स ढूंढना है जहां target को डालने से nums सॉर्टेड रहे। यदि target पहले से ही nums में मौजूद है, तो सबसे बड़ा इंडेक्स लौटाएं जहां target डाला जा सकता है। हमें इसे लाइब्रेरी फ़ंक्शन का उपयोग किए बिना और O(log n) समय में हल करना है।

इसलिए, यदि इनपुट है nums = [1,5,6,6,8,9] target = 6, तो आउटपुट 4 होगा, क्योंकि 6 पहले से ही वहां है, इसलिए इसे डालने के लिए सबसे बड़ा संभव इंडेक्स 4 है, तो सरणी [1,5,6,6,6,8,9] जैसी होगी।

हल करने का दृष्टिकोण

  • left := 0
  • right := nums का आकार - 1
  • ans := 0
  • जब तक left <= right, करें:
    • mid := (left + right) / 2 का फ्लोर
    • यदि target >= nums[mid], तो:
      • ans := mid + 1
      • left := mid + 1
    • अन्यथा:
      • right := mid - 1
  • ans लौटाएं

उदाहरण

def solve(nums, target):
    left, right = 0, len(nums) - 1
    ans = 0
    while left <= right:
        mid = (left + right) // 2
        if target >= nums[mid]:
            ans = mid + 1
            left = mid + 1
        else:
            right = mid - 1
    return ans

nums = [1, 5, 6, 6, 8, 9]
target = 6
print(solve(nums, target))

इनपुट

[1,5,6,6,8,9], 6

आउटपुट

4
  1. Python प्रोग्राम से क्रमबद्ध सूची में तत्व डालना Python प्रोग्राम से क्रमबद्ध सूची में तत्व डालना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक सूची दी गई है, हमें क्रमबद्ध क्रम को बदले बिना सूची में एक तत्व डालने की आवश्यकता है। नीचे चर्चा किए गए दो दृष्टिकोण हैं। दृष्टिकोण 1: ब्रूट-फोर्स विधि उदाहरण n: index = i break

  1. - Python में दी गई लिस्ट में किसी आइटम का इंडेक्स कैसे खोजें?

    लिस्ट में किसी एलिमेंट की पोजीशन (किसी भी सीक्वेंस डेटा टाइप के लिए) index() मेथड द्वारा प्राप्त की जाती है। यह मेथड दिए गए एलिमेंट के पहले ऑकरेंस को ढूंढता है। >>> L1=[45, 32, 100, 10, 24, 56] >>> L1.index(24) 4

  1. - पायथन में सूची में किसी तत्व का इंडेक्स कैसे खोजें?

    index() मेथड जो सूची (साथ ही स्ट्रिंग और टुपल जैसे अन्य सीक्वेंस टाइप) के लिए उपलब्ध है, किसी विशेष तत्व की पहली ऑकरेंस खोजने के लिए उपयोगी है। >>> L1 = [a, b, c, a, x] >>> L1 [a, b, c, a, x] >>> L1.index(a) 0 एक तत्व के सभी ऑकरेंस के इंडेक्स प्राप्त करने के लिए, enumera