কম্পিউটার

দুটি সংখ্যার যোগফল পরীক্ষা করার প্রোগ্রামটি বাছাই করা তালিকা থেকে k পর্যন্ত বা পাইথনে নয়


ধরুন আমাদের কাছে সংখ্যার একটি তালিকা আছে যাকে nums বলা হয় এবং সংখ্যার উপাদানগুলিকে ক্রমবর্ধমান ক্রমে সাজানো হয়েছে। আমাদের আরও একটি মান k আছে, আমাদের পরীক্ষা করতে হবে তালিকা থেকে নেওয়া দুটি উপাদান k পর্যন্ত যোগ করে কিনা। সংখ্যাগুলি ঋণাত্মক বা 0ও হতে পারে৷ আমাদের এই সমস্যাটি স্থায়ীভাবে স্থান ব্যবহারের মাধ্যমে সমাধান করতে হবে৷

সুতরাং, ইনপুট যদি nums =[-8, -3, 2, 7, 9] k =4 এর মত হয়, তাহলে আউটপুট হবে True, কারণ আমরা যদি 7 এবং -3 নিই, তাহলে যোগফল হবে 7 + (- 3) =4, যা k এর সমান।

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

  • i :=0
  • j :=সংখ্যার আকার - 1
  • যখন i
  • cur_sum :=nums[i] + nums[j]
  • যদি cur_sum হয় k এর সমান, তাহলে
    • সত্য ফেরান
  • অন্যথায় যখন cur_sum
  • i :=i + 1
  • অন্যথায়,
    • j :=j - 1
  • মিথ্যে ফেরত দিন
  • উদাহরণ

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

    def solve(nums, k):
       i = 0
       j = len(nums) - 1
       while i < j:
          cur_sum = nums[i] + nums[j]
          if cur_sum == k:
             return True
          elif cur_sum < k:
             i += 1
          else:
             j -= 1
       return False
    
    nums = [-8, -3, 2, 7, 9]
    k = 4
    print(solve(nums, k))

    ইনপুট

    [-8, -3, 2, 7, 9], 4
    

    আউটপুট

    True

    1. পাইথন প্রোগ্রাম দুটি সাজানো তালিকার একটি সাজানো একত্রিত তালিকা তৈরি করতে

    2. পাইথন প্রোগ্রাম দুটি সাজানো না হওয়া তালিকার একটি সাজানো একত্রিত তালিকা তৈরি করতে

    3. পাইথন প্রোগ্রাম একটি তালিকা খালি কি না পরীক্ষা করতে?

    4. দুটি সংখ্যা (m,n) বন্ধুত্বপূর্ণ বা পাইথন ব্যবহার করছে না কিনা তা কীভাবে পরীক্ষা করবেন?