কম্পিউটার

পাইথনের একটি অ্যারেতে প্রদত্ত পণ্য সহ সাবয়ারে বিদ্যমান কিনা তা পরীক্ষা করুন


ধরুন আমাদের nums নামে একটি অ্যারে আছে এবং এতে ধনাত্মক এবং ঋণাত্মক সংখ্যা রয়েছে। আমাদের আরেকটি মান k আছে। আমাদের চেক করতে হবে যে কোনো সাবারে যার গুণফল k হল অ্যারেতে উপস্থিত আছে কি না।

সুতরাং, যদি ইনপুটটি nums =[-2,-1,1,3,5,8], k =6 এর মত হয়, তাহলে আউটপুটটি True হবে কারণ সাব্যারে [-2,-1,3]

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

  • সর্বনিম্ন :=সংখ্যা[0], সর্বোচ্চ :=সংখ্যা[0]
  • prod_max :=সংখ্যা[0]
  • আমি রেঞ্জ 1 থেকে সংখ্যার আকার - 1 এর জন্য, কর
    • যদি nums[i] <0, তারপর
      • সর্বোচ্চ এবং সর্বনিম্ন অদলবদল করুন
    • সর্বোচ্চ :=সংখ্যার সর্বোচ্চ [i] এবং (সর্বোচ্চ * সংখ্যা[i])
    • সর্বনিম্ন :=সর্বনিম্ন সংখ্যা[i] এবং (সর্বনিম্ন * সংখ্যা[i])
    • যদি সর্বনিম্ন বা সর্বোচ্চ হয় k এর সমান, তাহলে
      • সত্য ফেরান
    • prod_max :=prod_max এর সর্বোচ্চ এবং সর্বোচ্চ
  • মিথ্যে ফেরত দিন

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

উদাহরণ কোড

def solve(nums, k):
   minimum = nums[0]
   maximum = nums[0]
 
   prod_max = nums[0]
 
   for i in range( 1, len(nums)):
      if nums[i] < 0:
         maximum, minimum = minimum, maximum

      maximum = max(nums[i], maximum * nums[i])
      minimum = min(nums[i], minimum * nums[i])

      if minimum == k or maximum == k:
         return True
 
      prod_max = max(prod_max, maximum)
   return False

nums = [-2,-1,1,3,5,8]
k = 6
print(solve(nums, k))

ইনপুট

[-2,-1,1,3,5,8], 6

আউটপুট

True

  1. পাইথনে বিএসটি-তে প্রদত্ত যোগফল সহ একটি ট্রিপলেট বিদ্যমান কিনা তা পরীক্ষা করুন

  2. পাইথনে সর্বোচ্চ সাবারে

  3. প্রদত্ত অ্যারেটি মনোটোনিক কিনা তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম

  4. একটি প্রদত্ত কী ইতিমধ্যে একটি পাইথন অভিধানে বিদ্যমান কিনা তা কিভাবে পরীক্ষা করবেন?