Computer >> Máy Tính >  >> Lập trình >> Python

Kiểm tra xem mảng con với sản phẩm đã cho có tồn tại trong một mảng bằng Python hay không

Giả sử chúng ta có một mảng được gọi là nums và mảng này chứa các số dương và âm. Chúng ta có một giá trị khác k. Chúng ta phải kiểm tra xem có bất kỳ mảng con nào có sản phẩm là k có trong mảng hay không.

Vì vậy, nếu đầu vào là nums =[-2, -1,1,3,5,8], k =6, thì đầu ra sẽ là True vì mảng con là [-2, -1,3]

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • tối thiểu:=nums [0], tối đa:=nums [0]
  • prod_max:=nums [0]
  • đối với tôi trong phạm vi từ 1 đến kích thước là nums - 1, thực hiện
    • nếu nums [i] <0, thì
      • hoán đổi tối đa và tối thiểu
    • tối đa:=tối đa nums [i] và (tối đa * nums [i])
    • tối thiểu:=tối thiểu nums [i] và (tối thiểu * nums [i])
    • nếu tối thiểu hoặc tối đa giống với k, thì
      • trả về True
    • prod_max:=tối đa là prod_max và tối đa
  • trả về Sai

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Mã mẫu

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))

Đầu vào

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

Đầu ra

True