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

পাইথনে অ্যারেতে দেওয়া গুণফল 가진 সাবঅ্যারে আছে কিনা

একটি অ্যারে nums (পজিটিভ ও নেগেটিভ সংখ্যা) এবং একটি মান k দেওয়া আছে। যাচাই করতে হবে যে কি কোনো সাবঅ্যারে আছে যার গুণফল k।

উদাহরণ

ইনপুট: nums = [-2, -1, 1, 3, 5, 8], k = 6

আউটপুট: True

ব্যাখ্যা: সাবঅ্যারে [-2, -1, 3]-এর গুণফল ৬।

অ্যালগরিদম (Kadane-সদৃশ)

  1. minimum ও maximum প্রোডাক্ট ট্র্যাক করুন।
  2. নেগেটিভ সংখ্যা পেলে minimum ও maximum সোয়্যাপ করুন।
  3. প্রতিটি ধাপে minimum বা maximum k-এর সমান হলে True।

উদাহরণ কোড

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))  # Output: True

ইনপুট

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

আউটপুট

True
  1. Python-এ BST-তে প্রদত্ত সমাধান নিয়ে ট্রিপলেট আছে কিনা যাচাই করা

  2. পাইথনে ম্যাক্সিমাম সাবঅ্যারে (Maximum Subarray)

  3. পাইথনে অ্যারে মনোটোনিক (Monotonic) কিনা চেক করা

  4. Python Dictionary-এ একটি কী ইতিমধ্যে আছে কিনা যাচাই করা