কম্পিউটার

পাইথনে সমস্ত মানকে একই রূপান্তর করতে প্রয়োজনীয় অপারেশনের সংখ্যা গণনা করার জন্য প্রোগ্রাম?


পূর্ণসংখ্যা সংখ্যাগুলির একটি তালিকা দেওয়া হলে, আপনি নিম্নলিখিত ক্রিয়াকলাপটি সম্পাদন করতে পারেন:সংখ্যার মধ্যে বৃহত্তম সংখ্যাটি বেছে নিন এবং এটিকে দ্বিতীয় বৃহত্তম সংখ্যায় পরিণত করুন৷ তালিকায় সমস্ত পূর্ণসংখ্যাকে একই করার জন্য প্রয়োজনীয় ন্যূনতম সংখ্যক ক্রিয়াকলাপ ফেরত দিন৷

সুতরাং, যদি ইনপুটটি nums =[5, 9, 2] এর মত হয়, তাহলে আউটপুট হবে 3, যেমন প্রথমে 9 বাছাই করুন, তারপরে এটি 5 করুন, সোয়ারে হল [5, 5, 2], তারপর 5 বেছে নিন এবং 2 করুন , [5, 2, 2], আবার 5 বেছে নিন এবং 2, [2, 2, 2] এ রূপান্তর করুন।

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

  • vals :=সংখ্যায় অনন্য অক্ষরের তালিকা সাজান

  • vtoi :=একটি মানচিত্র v সকল মানের জন্য v কী হিসাবে এবং তাদের সূচক i হিসাবে মান

  • সমস্ত v এর জন্য vtoi[v] এর যোগফল ফেরত দিন

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

উদাহরণ

class Solution:
   def solve(self, nums):
      vals = sorted(set(nums))
      vtoi = {v: i for i, v in enumerate(vals)}
      return sum(vtoi[v] for v in nums)

ob = Solution()
nums = [5, 9, 2]
print(ob.solve(nums))

ইনপুট

[5, 9, 2]

আউটপুট

3

  1. পাইথনে এক নম্বর থেকে অন্য নম্বর তৈরি করার জন্য প্রয়োজনীয় ন্যূনতম সংখ্যক অপারেশন খুঁজে বের করার প্রোগ্রাম

  2. উপাদান সংখ্যা গণনা প্রোগ্রাম পাইথনে সঠিক অবস্থানে স্থাপন করা হয়

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

  4. পাইথন প্রোগ্রাম 1 থেকে n পর্যন্ত সমস্ত সংখ্যায় মোট সেট বিট গণনা করে।