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

सबसे छोटा सूचकांक खोजने का कार्यक्रम जिसके लिए सरणी तत्व भी पायथन में सूचकांक के समान है

मान लीजिए कि हमारे पास nums नामक तत्वों की एक सूची है, जहां सभी आइटम अद्वितीय हैं, और उन्हें आरोही क्रम में क्रमबद्ध किया गया है, हमें न्यूनतम i को खोजना होगा जैसे कि nums[i] =i। अगर हमें कोई समाधान नहीं मिल रहा है, तो -1 लौटें। हमें इस समस्या को O(log(n)) समय में हल करना है।

इसलिए, यदि इनपुट nums =[-4, -1, 2, 3, 8] जैसा है, तो आउटपुट 2 होगा, क्योंकि दोनों nums[2] =2 और nums[3] =3 लेकिन 2 छोटा है।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • ret :=-1, lhs :=0, rhs :=nums का आकार - 1

  • जबकि lhs <=rhs, करते हैं

    • मध्य:=तल (एलएचएस + आरएचएस) / 2

    • यदि अंक [मध्य] मध्य के समान है, तो

      • रिट:=मध्य

    • अगर अंक [मध्य]>=मध्य, तो

      • rhs :=मध्य - 1

    • अन्यथा,

      • lhs :=मध्य + 1

  • वापसी रिट

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें

def solve(nums):
   ret = -1
   lhs = 0
   rhs = len(nums) - 1
   while lhs <= rhs:
      mid = (lhs + rhs) // 2
      if nums[mid] == mid:
         ret = mid
      if nums[mid] >= mid:
         rhs = mid - 1
      else:
         lhs = mid + 1
   return ret

nums = [-4, -1, 2, 3, 8]
print(solve(nums))

इनपुट

[-4, -1, 2, 3, 8]

आउटपुट

2

  1. सरणी रोटेशन के लिए पायथन कार्यक्रम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - एक टेक्स्ट और एक पैटर्न को देखते हुए, हमें टेक्स्ट में पैटर्न और उसके क्रमपरिवर्तन (या विपर्यय) की सभी घटनाओं को प्रिंट करना होगा। आइए अब नीचे दिए गए कार्यान्वयन में समाधान देखें - उदाहरण # maximum value MAX = 300 #

  1. एक सरणी में सबसे बड़ा तत्व खोजने के लिए पायथन कार्यक्रम

    इस लेख में, हम दिए गए समस्या कथन को हल करने के लिए समाधान और दृष्टिकोण के बारे में जानेंगे। समस्या कथन एक इनपुट के रूप में एक सरणी को देखते हुए, हमें सरणी में सबसे बड़ा तत्व खोजने की जरूरत है। दृष्टिकोण हम अधिकतम को पहले तत्व के रूप में प्रारंभ करते हैं। इसके बाद, हम दिए गए सरणी को दूसरे तत्व से अ

  1. n . से विभाजित सरणी गुणन के अनुस्मारक खोजने के लिए पायथन कार्यक्रम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे - समस्या कथन कई संख्याओं और एक संख्या इनपुट n को देखते हुए, हमें n से विभाज्य सभी संख्या को गुणा करने के बाद शेष को प्रिंट करना होगा। दृष्टिकोण सबसे पहले, शेष की गणना arr[i]% n की तरह करें। फिर इस शेष को वर्तमान परिणाम से गुणा क