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

पायथन में O(n) समय और O(1) स्थान में जांचें कि सरणी के तत्व क्रमागत हैं (ऋणात्मक संख्याओं को भी संभालता है)


मान लीजिए हमारे पास nums नामक असॉर्टेड संख्याओं की एक सरणी है। हमें जांचना है कि क्या इसमें सन्निकट मान हैं या नहीं, यह ऋणात्मक संख्याओं को भी सपोर्ट करना चाहिए।

उदाहरण के लिए, यदि nums = [-3, 5, 1, -2, -1, 0, 2, 4, 3] है, तो आउटपुट True होगा क्योंकि तत्व -3, -2, -1, 0, 1, 2, 3, 4, 5 हैं।

हल करने का तरीका

  1. size := nums का आकार
  2. init_term := अनंत (बहुत बड़ी संख्या)
  3. न्यूनतम मान ढूंढें (init_term)
  4. ap_sum := (size × (2 × init_term + (size - 1) × 1)) / 2 - AP का योग सूत्र
  5. total := nums के सभी तत्वों का योग
  6. यदि ap_sum == total तो True अन्यथा False लौटाएं

यह तरीका AP योग सूत्र का उपयोग करता है और O(1) अतिरिक्त स्थान लेता है।

उदाहरण

def solve(nums):
    size = len(nums)
    init_term = 999999
    for i in range(size):
        if nums[i] < init_term:
            init_term = nums[i]
    ap_sum = (size * (2 * init_term + (size - 1) * 1)) // 2
    total = sum(nums)
    return ap_sum == total

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

इनपुट

[-3, 5, 1, -2, -1, 0, 2, 4, 3]

आउटपुट

True
  1. - पायथन प्रोग्राम में लैम्ब्डा एक्सप्रेशन से धनात्मक और ऋणात्मक संख्याओं को पुनर्व्यवस्थित करें

    इस ट्यूटोरियल में, हम एक सूची में धनात्मक और ऋणात्मक संख्याओं को पुनर्व्यवस्थित करने के लिए लैम्ब्डा का उपयोग करके एक अनाम फंक्शन लिखने जा रहे हैं। हमें एक सूची से ऋणात्मक संख्याओं को चुनना है और फिर धनात्मक संख्याओं को एक नई सूची बनाने के लिए चुनना है। एल्गोरिदम आइए देखें कि समस्या को चरण दर चरण क

  1. - Python प्रोग्राम में सूची में धनात्मक और ऋणात्मक संख्याओं की गिनती

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक सूची पुनरावृत्ति दी गई है, हमें इसमें धनात्मक और ऋणात्मक संख्याओं की गिनती करने और उन्हें प्रदर्शित करने की आवश्यकता है। दृष्टिकोण 1 - पुनरावृत्ति कंस्ट्रक्ट (for) का उपयोग करके ब्रूट-फोर्स दृष्टिकोण यहां हमे

  1. - पायथन में लैम्ब्डा एक्सप्रेशन से धनात्मक और ऋणात्मक संख्याओं को पुनर्व्यवस्थित करना

    इस लेख में, हम लैम्ब्डा एक्सप्रेशन के बारे में सीखेंगे जो धनात्मक और ऋणात्मक पूर्णांकों के इनपुट सरणी को लेगा। हम दो अलग-अलग सरणियाँ गणना करेंगे, एक में ऋणात्मक संख्याएँ और दूसरी में धनात्मक संख्याएँ। यहाँ हम एक Rearrange() फ़ंक्शन परिभाषित करते हैं जो केवल एक तर्क स्वीकार करता है यानी पूर्णांकों