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

पायथन में अंतिम पत्थर का वजन

मान लीजिए कि हमारे पास कुछ चट्टानें हैं, प्रत्येक चट्टान का एक धनात्मक पूर्णांक भार है। प्रत्येक मोड़ में, हम दो सबसे भारी चट्टानें लेंगे और उन्हें एक साथ तोड़ देंगे। मान लें कि पत्थरों का वजन x और y और x <=y है। इस स्मैश का परिणाम दो प्रकार का हो सकता है।

  • यदि x =y, तो दोनों पत्थर पूरी तरह नष्ट हो जाते हैं;
  • अन्यथा जब x !=y, वजन x का पत्थर पूरी तरह से नष्ट हो जाता है, और वजन y के पत्थर का वजन y-x हो जाता है।

अंत में, ज़्यादा से ज़्यादा 1 पत्थर बचा है। हमें इस पत्थर का वजन ज्ञात करना है (जब कोई पत्थर नहीं बचा हो।)

तो अगर पत्थर के वजन [2,7,4,1,8,1] हैं, तो परिणाम 1 होगा। पहले 7 और 8 का चयन करें, फिर 1 प्राप्त करें, तो सरणी [2,4,1,1] होगी ,1], दूसरा 2 और 4 लें। सरणी [2,1,1,1] होगी, उसके बाद 2 और 1 का चयन करें, सरणी [1,1,1] होगी, फिर वजन 1 के साथ दो पत्थरों का चयन करें, तो दोनों नष्ट हो जाएंगे, इसलिए सरणी [1] होगी। यह उत्तर है

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

  • अगर स्टोन वेट ऐरे W में कोई एलिमेंट नहीं है, तो 0 पर लौटें
  • यदि W में केवल एक तत्व है तो W[0]
  • को वापस कर दें
  • जबकि W में एक से अधिक तत्व हैं -
    • सॉर्ट डब्ल्यू
    • s1:=W का अंतिम तत्व, s2:=W का दूसरा अंतिम तत्व
    • अगर s1 =s2, तो s1 और s2 को W से हटा दें
    • अन्यथा s1 :=|s1 – s2|, W से अंतिम तत्व निकालें, फिर s1 को W के अंतिम तत्व के रूप में सेट करें
  • यदि W में एक तत्व है, तो उस तत्व को वापस कर दें, अन्यथा 0 लौटा दें

उदाहरण

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

class Solution(object):
   def lastStoneWeight(self, stones):
      """
      :type stones: List[int]
      :rtype: int
      """
      if len(stones) ==0:
         return 0
      if len(stones) == 1:
         return 1
      while len(stones)>1:
         stones.sort()
         s1,s2=stones[-1],stones[-2]
         if s1==s2:
            stones.pop(-1)
            stones.pop(-1)
         else:
            s1 = abs(s1-s2)
            stones.pop(-1)
            stones[-1] = s1
      if len(stones):
         return stones[-1]
      return 0
ob1 = Solution()
print(ob1.lastStoneWeight([2,7,4,1,6,1]))

इनपुट

[2,7,4,1,6,1]

आउटपुट

1

  1. सूची में पहले और अंतिम तत्वों को इंटरचेंज करने के लिए पायथन प्रोग्राम

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

  1. पायथन में किसी सूची का अंतिम तत्व कैसे प्राप्त करें?

    पायथन अनुक्रम, सूची वस्तु सहित अनुक्रमण की अनुमति देता है। सूची में किसी भी तत्व को शून्य आधारित सूचकांक का उपयोग करके पहुँचा जा सकता है। यदि सूचकांक एक ऋणात्मक संख्या है, तो सूचकांक की गिनती अंत से शुरू होती है। जैसा कि हम सूची में अंतिम तत्व चाहते हैं, -1 को अनुक्रमणिका के रूप में उपयोग करें। >

  1. पायथन में एक महीने का आखिरी दिन कैसे प्राप्त करें?

    आप महीने के पहले दिन के कार्यदिवस और महीने में दिनों की संख्या जानने के लिए कैलेंडर मॉड्यूल का उपयोग कर सकते हैं। इस जानकारी का उपयोग करके आप आसानी से महीने का अंतिम दिन प्राप्त कर सकते हैं। कैलेंडर मॉड्यूल में एक विधि है, महीने की अवधि (वर्ष, महीना) जो निर्दिष्ट वर्ष और महीने के लिए महीने के पहले द