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

सूचकांक खोजने के लिए कार्यक्रम जिसका बाएँ और दाएँ तत्वों का योग पायथन में बराबर है

मान लीजिए कि हमारे पास अंक नामक वस्तुओं की एक सूची है, हमें सबसे छोटी अनुक्रमणिका i को खोजना है, ताकि i के बाईं ओर मौजूद संख्याओं का योग i के दाईं ओर मौजूद संख्याओं के योग के बराबर हो। अगर हमें ऐसा कोई समाधान नहीं मिलता है, तो -1 पर लौटें।

इसलिए, यदि इनपुट nums =[8,2,3,6,5,2,5,9,1,2] की तरह है, तो आउटपुट 4 होगा, क्योंकि इंडेक्स 4 के बचे हुए तत्वों का योग है [ 8,2,3,6] =19, और दाईं ओर मौजूद तत्वों का योग [2,5,9,1,2] =19 भी है।

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

  • r :=अंकों में मौजूद सभी तत्वों का योग

  • एल :=0

  • प्रत्येक अनुक्रमणिका के लिए i और मान x अंकों में, करें

    • आर:=आर - एक्स

    • यदि r, l के समान है, तो

      • वापसी मैं

    • एल:=एल + एक्स

  • वापसी -1

उदाहरण

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

def solve(nums):
   r = sum(nums)
   l = 0
   for i,x in enumerate(nums):
      r -= x
      if r == l:
         return i
      l += x
   return -1

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

इनपुट

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

आउटपुट

4

  1. पायथन में नोड और वंशज के बीच अंतर खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक बाइनरी ट्री है, हमें किसी भी नोड और उसके वंशजों के बीच सबसे बड़ा निरपेक्ष अंतर खोजना होगा। तो, अगर इनपुट पसंद है तो आउटपुट 7 होगा क्योंकि नोड्स 8 और 1 के बीच सबसे बड़ा पूर्ण अंतर है। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - एक फ़ंक्शन को परिभाषित करें dfs() ।

  1. पायथन में आरोही क्रम में सबसे बड़ी रकम और वापसी रकम के साथ k सबलिस्ट खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास संख्याओं की एक सूची है, जिसे nums कहा जाता है, और दूसरा मान k, हमें सबसे बड़ी रकम के साथ k उप-सूचियों को ढूंढना है और रकम को गैर-घटते क्रम में वापस करना है। इसलिए, यदि इनपुट संख्या =[2, 4, 5, -100, 12, 30, 6, -2, 6] k =3 की तरह है, तो आउटपुट [10, 11, 12] होगा, जैसा कि हम सबसे

  1. पायथन में एक पेड़ के सभी तत्वों का योग खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक बाइनरी ट्री है जिसमें कुछ मान हैं, हमें ट्री के सभी मानों का योग ज्ञात करना है। तो, अगर इनपुट पसंद है तो आउटपुट 14 . होगा इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - फ़ंक्शन रिकर्स () को परिभाषित करें। यह नोड लेगा वैल:=नोड का मान यदि नोड का बायां भाग शून्