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

পাইথনে দেওয়া অ্যারে থেকে দৈর্ঘ্য k সাবঅ্যারে বানাতে অনফেয়ারনেস মিনিমাইজ করার প্রোগ্রাম

একটি অ্যারে A এবং মান k দেওয়া আছে। A-থেকে k আকারের সাবঅ্যারে বানাতে হবে যাতে অনফেয়ারনেস = max(arr) - min(arr) মিনিমাম হয়।

উদাহরণ

A = [25, 120, 350, 150, 2500, 25, 35], k = 3 → আউটপুট: 10

সাবঅ্যারে: [25, 25, 35] → max=35, min=25, diff=10

এলগরিদম (স্লাইডিং উইন্ডো অন সোর্টেড অ্যারে)

  1. A সর্ট করুন।
  2. i = 0 থেকে n-k পর্যন্ত:
    • m = min(m, A[i+k-1] - A[i])
  3. m রিটার্ন করুন।

পাইথন কোড

def solve(A, k):
    i = 0
    A.sort()
    n = len(A)
    m = A[n-1]
    while i < n - k:
        if A[i+k-1] - A[i] < m:
            m = A[i+k-1] - A[i]
        i += 1
    return m

A = [25, 120, 350, 150, 2500, 25, 35]
k = 3
print(solve(A, k))  # আউটপুট: 10

ইনপুট / আউটপুট

[25, 120, 350, 150, 2500, 25, 35], 3
10
  1. পাইথনে লিংকড লিস্ট ফোল্ড করে ইন্টারসেক্টিং নোডের যোগফল বের করার প্রোগ্রাম

  2. পাইথনে দিয়ে যোগফলের জন্য সর্বোচ্চ গুণফল নির্ণয়

  3. পাইথনে লসি রান-লেথ এনকোডিংর ন্যূনতম দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম

  4. পাইথনে দিয়ে गये শর্তে সর্বোচ্চ দৈর্ঘ্যের সাবলিস্ট খুঁজে বের করার প্রোগ্রাম