কম্পিউটার টিউটোরিয়াল

পাইথনে সর্বোচ্চ তিনটি মুভের মাধ্যমে বড় এবং ছোট মানের পার্থক্য কমানোর প্রোগ্রাম


একটি nums নামক অ্যারে দেওয়া আছে। এক মুভে আমরা অ্যারের যেকোনো একটি উপাদানকে যেকোনো মানে পরিবর্তন করতে পারি। আমাদের কাজ হলো সর্বোচ্চ ৩টি মুভ সম্পাদন করার পর nums-এর সর্বোচ্চ এবং সর্বনিম্ন মানের মধ্যে ন্যূনতম পার্থক্য বের করা।

যেমন, nums = [3,7,2,12,16] হলে আউটপুট হবে ১ কারণ আমরা অ্যারেটিকে [1,1,0,1,1] বানাতে পারি, যেখানে সর্বোচ্চ ১ এবং সর্বনিম্ন ০, তাই পার্থক্য ১।

সমাধানের ধাপসমূহ

  • যদি nums-এর আকার ≤ 4 হয়, তবে ০ ফেরত দিন।
  • nums সর্ট করুন।
  • ans := অসীম (infinity)
  • i = 0 থেকে ৩ পর্যন্ত লুপ চালান:
    • mi := nums[i]
    • ma := nums[nums-এর দৈর্ঘ্য - (3 - i + 1)]
    • ans := min(ma - mi, ans)
  • ans ফেরত দিন।

উদাহরণ

def solve(nums):
    if len(nums) <= 4:
        return 0
    nums.sort()
    ans = float("inf")
    for i in range(4):
        mi = nums[i]
        ma = nums[-(3 - i + 1)]
        ans = min(ma - mi, ans)
    return ans

nums = [3,7,2,12,16]
print(solve(nums))

ইনপুট

[3,7,2,12,16]

আউটপুট

1

  1. Python-এ ডায়реक्टেড গ্রাফে সর্বোচ্চ রঙ মান বের করার প্রোগ্রাম

  2. পাইথনে বাইনারি ট্রিতে নোড এবং এর ডিসেন্ডেন্টের মধ্যে সর্বোচ্চ পার্থক্য বের করার প্রোগ্রাম

  3. পাইথনে k আকারের তালিকায় সর্বোচ্চ ও সর্বনিম্নের পার্থক্য ন্যূনতম করার প্রোগ্রাম

  4. পাইথনে লিস্ট থেকে সর্বোচ্চ, সর্বনিম্ন, দ্বিতীয় সর্বোচ্চ ও দ্বিতীয় সর্বনিম্ন বের করা