কম্পিউটার

পাইথনে অ্যারে জিগজ্যাগ করতে উপাদানগুলি হ্রাস করুন


ধরুন আমাদের কাছে পূর্ণসংখ্যার একটি অ্যারে সংখ্যা আছে, একটি মুভ অপারেশন আসলে যেকোন উপাদান বেছে নেওয়া এবং এটিকে 1 দ্বারা হ্রাস করা। একটি অ্যারে A হল একটি জিগজ্যাগ অ্যারে যদি 1 বা 2 সন্তুষ্ট হয় −

  • প্রতিটি জোড়-সূচীযুক্ত উপাদান সন্নিহিত উপাদানগুলির চেয়ে বড়, তাই। A[0]> A[1] A[3] ... ইত্যাদি।

  • প্রতিটি বিজোড়-সূচীযুক্ত উপাদান সন্নিহিত উপাদানগুলির চেয়ে বড়, তাই। A[0] A[2] A[4] <... ইত্যাদি।

প্রদত্ত অ্যারে সংখ্যাগুলিকে একটি জিগজ্যাগ অ্যারেতে রূপান্তর করতে আমাদের সর্বনিম্ন সংখ্যক চাল খুঁজে বের করতে হবে৷

সুতরাং যদি অ্যারেটি [1,2,3] এর মত হয়, তাহলে আউটপুট হবে 2, যেমন আমরা 2 থেকে 0 বা 3 থেকে 1 কমাতে পারি

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • সমাধান() নামক একটি পদ্ধতি সংজ্ঞায়িত করুন, এটি সংখ্যা নেবে এবং শুরু করবে, এটি নীচের মত কাজ করবে -

  • k :=0

  • সংখ্যার দৈর্ঘ্য থেকে শুরু করে 2 দ্বারা বৃদ্ধি করুন

    • বাম :=100000 যখন i – 1 <0, অন্যথায় সংখ্যা[i - 1]

    • ডান :=100000 যখন i + 1>=সংখ্যার দৈর্ঘ্য, অন্যথায় সংখ্যা[i + 1]

    • temp :=(ন্যূনতম বাম এবং ডান) – 1 – সংখ্যা[i]

    • যদি temp <0, তাহলে k :=k + |temp|

  • k

    ফেরত দিন
  • প্রধান পদ্ধতিতে, এটি হবে

  • উত্তর :=সমাধান (সংখ্যা, 0)

  • উত্তর :=সর্বনিম্ন উত্তর এবং সমাধান (সংখ্যা, 1)

  • উত্তর ফেরত দিন

উদাহরণ(পাইথন)

আসুন আরও ভালোভাবে বোঝার জন্য নিচের বাস্তবায়ন দেখি −

class Solution(object):
   def solve(self,nums,start):
      k = 0
      for i in range(start,len(nums),2):
         left = 100000 if i-1<0 else nums[i-1]
         right = 10000 if i+1>=len(nums) else nums[i+1]
         temp= (min(left,right)-1 - nums[i])
         if temp<0:
            k+=abs(temp)
      return k
   def movesToMakeZigzag(self, nums):
      ans = self.solve(nums,0)
      ans = min(ans,self.solve(nums,1))
      return ans
ob = Solution()
print(ob.movesToMakeZigzag([1,2,3]))

ইনপুট

[1,2,3]

আউটপুট

2

  1. পাইথনে সেলফ ছাড়া অ্যারের পণ্য

  2. পাইথনে সমস্ত অ্যারে উপাদানকে সমান করতে প্রয়োজনীয় ক্রিয়াকলাপগুলির সংখ্যা৷

  3. পাইথনে একটি অ্যারেতে স্বতন্ত্র উপাদান গণনা করুন

  4. বিসেক্ট - পাইথনে অ্যারে দ্বিখণ্ডিত অ্যালগরিদম