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

Python में सूची से तीन अद्वितीय एलिमेंट जिनका योग k के सबसे करीब है, खोजने का प्रोग्राम


मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची और एक मान k है, हमें nums में तीन अद्वितीय प्रविष्टियाँ (a, b, c) ढूंढनी हैं जैसे कि |a + b + c - k| न्यूनतम हो और निरपेक्ष अंतर लौटाना है।

तो, यदि इनपुट nums = [2, 5, 25, 6], k = 14 जैसा है, तो आउटपुट 1 होगा क्योंकि यदि हम [2, 5, 6] लेते हैं तो हमें 14 के सबसे करीब 13 मिलेगा और निरपेक्ष अंतर |13 - 14| = 1 होगा।

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

  • सूची nums को सॉर्ट करें
  • ans := 1e9
  • i को 0 से nums के आकार तक की रेंज में लिए, करें
    • j := i + 1
    • k := nums के आकार - 1
    • जब j < k, करें
      • s := nums[i] + nums[j] + nums[k]
      • यदि s <= target, तो ans := ans और target - s का न्यूनतम, j := j + 1
      • अन्यथा, ans := ans और s - target का न्यूनतम, k := k - 1
  • ans लौटाएं

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

उदाहरण


class Solution:
    def solve(self, nums, target):
        nums.sort()
        ans = 1e9
        for i in range(len(nums)):
            j = i + 1
            k = len(nums) - 1
            while j < k:
                s = nums[i] + nums[j] + nums[k]
                if s <= target:
                    ans = min(ans, target - s)
                    j += 1
                else:
                    ans = min(ans, s - target)
                    k -= 1
        return ans

ob1 = Solution()
nums = [2, 5, 25, 6]
k = 14
print(ob1.solve(nums, k))

इनपुट

[2, 5, 25, 6], 14

आउटपुट

1
  1. पायथन प्रोग्राम: लिस्ट का संचयी योग ज्ञात करें पायथन प्रोग्राम: लिस्ट का संचयी योग ज्ञात करें

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक लिस्ट दी गई है, हमें संचयी योग के साथ एक लिस्ट बनानी है। उदाहरण # संचयी योग def Cumulative(l): new = [] cumsum = 0 for element in l: cumsum += element new.append(cumsum) return new # ड्राइवर

  1. पायथन प्रोग्राम: लिस्ट में एलिमेंट्स का योग ढूंढें पायथन प्रोग्राम: लिस्ट में एलिमेंट्स का योग ढूंढें

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

  1. - पायथन प्रोग्राम सूची से N सबसे बड़े तत्व खोजने के लिए

    एक पूर्णांक सूची दी गई है, हमारा कार्य सूची में N सबसे बड़े तत्व ढूंढना है। उदाहरण इनपुट : [40, 5, 10, 20, 9] N = 2 आउटपुट: [40, 20] एल्गोरिदम चरण 1: एक पूर्णांक सूची और सबसे बड़ी संख्या की संख्या इनपुट करें। चरण 2: पहले सूची को N बार पार करें। चरण 3: प्रत्येक पारगमन में सबसे बड़ा मान ढूंढें और इसे