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

পাইথনে টার্গেটের চেয়ে বড় পার্থক্য বিশিষ্ট ডিস্টিন্ক্ট পেয়ারের সর্বোচ্চ সংখ্যা গণনা করার প্রোগ্রাম


মান ল করুন nums নামের একটি সংখ্যার তালিকা এবং target নামের একটি মান। আমাদের সর্বোচ্চ কতটি পেয়ার বানানো যায় যেখানে প্রতিটি পেয়ারের জন্য i < j, i এবং j অন্য কোনো পেয়ারে নেই, এবং |nums[i] - nums[j]| >= target।

যদি ইনপুট হয় nums = [2, 4, 6, 10, 11], target = 5, তবে আউটপুট হবে ২, কারণ পেয়ারগুলো: (2, 6), (5, 10) — নোট: উদাহরণে টাইপো আছে, সঠিক পেয়ার হলে (4, 10) বা (2, 11) ইত্যাদি।

এটি সমাধান করতে আমরা নিম্নলিখিত ধাপগুলি অনুসরণ করব:

  • N := A-এর আকার
  • A তালিকাটি সাজান
  • ans := 0
  • j := N / 2
  • i কে ০ থেকে N/2 পর্যন্ত লুপ চালান:
    • যখন j < N এবং A[j] - A[i] < target: j := j + 1
    • যদি j < N: ans := ans + 1, j := j + 1
  • ans ফেরত দিন

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

উদাহরণ

class Solution:    def solve(self, A, target):       N = len(A)       A.sort()       ans = 0       j = N >> 1       for i in range(N >> 1):          while j < N and A[j] - A[i] < target:             j += 1          if j < N:             ans += 1             j += 1       return ans ob = Solution() nums = [2, 4, 6, 10, 11] target = 5 print(ob.solve(nums, target))

ইনপুট

[2, 4, 6, 10, 11], 5

আউটপুট

2

  1. পাইথনে বাইনারি ট্রিতে যেসব পথের যোগফল k তাদের সংখ্যা গুনার প্রোগ্রাম

  2. পাইথনে ট্রিপলেট কাউন্ট যাদের যোগফল টার্গেটের চেয়ে ছোট (3Sum Smaller)

  3. পাইথনে সঠিক পজিশনে থাকা এলিমেন্টের সংখ্যা গণনা করার প্রোগ্রাম

  4. পাইথন প্রোগ্রাম: তিন সংখ্যার মধ্যে সর্বোচ্চ (Maximum of Three)