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

Python-এ মানগুলোর একটি জোড়ার মধ্যবর্তী সর্বোচ্চ দূরত্ব বের করার প্রোগ্রাম


মনে করুন nums1 এবং nums2 নামে দুটি অ্যারে (নন-গ্রোইং) আছে। ইন্ডেক্স জোড়া (i, j) যেখানে 0 <= i < nums1-এর আকার, এবং 0 <= j < nums2-এর আকার বৈধ হবে যদি i <= j এবং nums1[i] <= nums2[j] সত্য হয়। জোড়ার দূরত্ব হল (j - i)। আমাদের প্রতিটি বৈধ জোড়া (i,j) থেকে সর্বোচ্চ দূরত্ব বের করতে হবে। যদি কোনো বৈধ জোড়া নেই, তবে 0 রিটার্ন করুন।

সুতরাং, যদি ইনপুট হয় nums1 = [60,40,15,10,5], nums2 = [115,30,25,15,10], তবে আউটপুট হবে 1 কারণ, এখানে বৈধ জোড়াগুলো হল (0,0), (2,2), (2,3), (3,3), (3,4) এবং (4,4), এখানে সর্বোচ্চ দূরত্ব 1 যা বা (2,3) জোড়া বা (3,4) জোড়ার জন্য।

এটি সমাধান করতে আমরা নিচের ধাপগুলো অনুসরণ করব −

  • যদি nums1-এর লাস্ট এলিমেন্ট > nums2-এর ফার্স্ট এলিমেন্ট হয়, তবে

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

  • i := 0, j := 0 এবং max_dist := 0

  • যতক্ষণ i < nums1-এর আকার, করুন

    • যদি j < nums2-এর আকার এবং nums1[i] <= nums2[j] হয়, তবে

      • max_dist := max_dist এবং (j-i) এর মধ্যে সর্বোচ্চ

      • j := j + 1

    • অন্যথায়,

      • j := j + 1

      • i := i + 1

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

উদাহরণ

বेहतर বোঝার জন্য নিচের ইমপ্লিমেন্টেশন দেখুন −

def solve(nums1, nums2):
    if nums1[len(nums1)-1] > nums2[0]:
        return 0
    i = j = max_dist = 0
    while i < len(nums1):
        if j < len(nums2) and nums1[i] <= nums2[j]:
            max_dist = max(max_dist, j-i)
            j += 1
        else:
            j += 1
            i += 1
    return max_dist

nums1 = [60,40,15,10,5]
nums2 = [115,30,25,15,10]
print(solve(nums1, nums2))

ইনপুট

[60,40,15,10,5], [115,30,25,15,10]

আউটপুট

1

  1. পাইথনে kটি একই দৈর্ঘ্যের রিবন বানাতে সর্বোচ্চ দৈর্ঘ্য বের করার প্রোগ্রাম

  2. পাইথন প্রোগ্রাম - খালি এবং besetzt সিটের মধ্যবর্তী সর্বাধিক দূরত্ব বের করুন

  3. Python-এ সর্বোচ্চ বিল্ডিং হাইট বের করার প্রোগ্রাম

  4. পাইথনে যেকোনো সিটি এবং স্টেশনের মধ্যে সর্বোচ্চ দূরত্ব বের করা