কম্পিউটার

পাইথন ব্যবহার করে দ্বিগুণ জোড়ার অ্যারে খোঁজার প্রোগ্রাম


ধরুন আমাদের কাছে নামক সংখ্যাগুলির একটি অ্যারে আছে যার দৈর্ঘ্য সমান, আমাদের পরীক্ষা করতে হবে যে এটিকে এমনভাবে পুনরায় সাজানো সম্ভব কিনা যাতে প্রতি 0 <এর জন্য nums[2*i + 1] =2*nums[2*i] =i <সংখ্যার আকার/2।

সুতরাং, ইনপুট যদি সংখ্যার মত হয় =[4,-2,2,-4], তাহলে আউটপুট হবে True।

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

  • cnt :=একটি মানচিত্র যেখানে সমস্ত উপাদান সংখ্যা এবং তাদের ফ্রিকোয়েন্সি মান রয়েছে

  • বাছাই করা তালিকার প্রতিটি x এর জন্য cnt যা তাদের পরম মানের উপর ভিত্তি করে সাজানো হয়, করুন

    • যদি cnt[x]> cnt[2 * x], তাহলে

      • রিটার্ন ফলস

    • cnt[2 * x] :=cnt[2 * x] - cnt[x]

  • রিটার্ন ট্রু

উদাহরণ

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

from collections import Counter
def solve(nums):
   cnt = Counter(nums)
   for x in sorted(cnt, key=abs):
      if cnt[x] > cnt[2 * x]:
         return False
      cnt[2 * x] -= cnt[x]
   return True

nums = [4,-2,2,-4]
print(solve(nums))

ইনপুট

[6,0,8,2,1,5]

আউটপুট

True

  1. পাইথন ব্যবহার করে ভাল লিফ নোড জোড়ার সংখ্যা খুঁজে বের করার প্রোগ্রাম

  2. পাইথন প্রোগ্রামে অ্যারের সমষ্টি খুঁজুন

  3. অ্যারের যোগফল খুঁজে পেতে পাইথন প্রোগ্রাম

  4. একটি 2D অ্যারেতে k'th ক্ষুদ্রতম উপাদান খুঁজে পেতে পাইথন প্রোগ্রাম