কম্পিউটার

পাইথনে হ্রাস এবং পুনর্বিন্যাস করার পরে সর্বাধিক উপাদান খুঁজে পাওয়ার প্রোগ্রাম


ধরুন আমাদের একটি অ্যারে আছে যাকে বলা হয়। আমাদের কিছু ক্রিয়াকলাপ সঞ্চালন করতে হবে যাতে এটি এই শর্তগুলি সন্তুষ্ট করে -

  • arr-এর প্রথম উপাদানটি 1 হতে হবে।

  • যেকোনো 2টি সন্নিহিত উপাদানের মধ্যে পরম পার্থক্য অবশ্যই 1 হতে হবে।

এবং দুটি অপারেশন আছে। আমরা এই দুই ধরনের ক্রিয়াকলাপ যেকোনবার করতে পারি -

  • arr-এর যেকোন মানকে একটি ছোট ধনাত্মক সংখ্যায় কমিয়ে দিন।

  • যে কোনো ক্রমে arr-এর উপাদানগুলিকে পুনরায় সাজান।

প্রদত্ত শর্তগুলি সন্তুষ্ট করার জন্য ক্রিয়াকলাপগুলি সম্পাদন করার পরে আমাদের সম্ভাব্য সর্বাধিক সম্ভাব্য মান খুঁজে বের করতে হবে৷

সুতরাং, যদি ইনপুটটি arr =[3,3,2,3,2] এর মত হয়, তাহলে আউটপুট হবে 3 কারণ, আমরা শেষ উপাদানটিকে 1-এ কমিয়ে আনতে পারি, তারপর তাদের [1,2,3,3'-এর মতো পুনরায় সাজাতে পারি। ,3], এবং সর্বোচ্চ 3।

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

  • তালিকা সাজান arr

  • arr[0] :=1

  • আমি রেঞ্জ 1 থেকে arr - 1 এর আকারের জন্য, do

    • arr[i] :=সর্বনিম্ন (arr[i - 1] + 1) এবং arr[i]

  • সর্বোচ্চ arr ফেরত দিন

উদাহরণ

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

def solve(arr):
   arr.sort()
   arr[0] = 1

   for i in range(1, len(arr)):
      arr[i] = min(arr[i - 1] + 1, arr[i])

   return max(arr)

arr = [3,3,2,3,2]
print(solve(arr))

ইনপুট

[3,3,2,3,2]

আউটপুট

3

  1. পাইথন প্রোগ্রাম ডিকশনারিতে দ্বিতীয় সর্বোচ্চ মান খুঁজে পেতে

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

  3. পাইথন প্রোগ্রাম একটি তালিকায় বৃহত্তম, ক্ষুদ্রতম, দ্বিতীয় বৃহত্তম এবং দ্বিতীয় ক্ষুদ্রতম খুঁজে পেতে?

  4. পাইথন প্রোগ্রাম একটি তালিকায় সর্বাধিক এবং সর্বনিম্ন উপাদানের অবস্থান খুঁজে পেতে?