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

পাইথনে অ্যারে কনসিকিউটিভ (Consecutive) কিনা O(n) টাইম ও O(1) স্পেসে (নেগেটিভ সংখ্যাও হ্যান্ডেল)

একটি আনসর্টেড অ্যারে nums (নেগেটিভ সংখ্যাও থাকতে পারে) দেওয়া আছে। এর এলিমেন্টগুলো কনসিকিউটিভ (সlauf) কিনা যাচাই করতে হবে O(n) টাইম ও O(1) স্পেসে।

উদাহরণ

ইনপুট: nums = [-3, 5, 1, -2, -1, 0, 2, 4, 3]

আউটপুট: True

ব্যাখ্যা: সর্টেড হলে [-3,-2,-1,0,1,2,3,4,5] - কনসিকিউটিভ।

অ্যালগরিদম

  1. ন্যূনতম মান init_term বের করুন।
  2. AP যোগফল ফর্মুলা: ap_sum = n*(2*init_term + (n-1))/2।
  3. আসল যোগফল total বের করুন।
  4. ap_sum == total হলে কনসিকিউটিভ।

উদাহরণ কোড

def solve(nums):
    size = len(nums)
    init_term = float('inf')
    for x in nums:
        if x < init_term:
            init_term = x
    ap_sum = (size * (2 * init_term + (size - 1))) // 2
    total = sum(nums)
    return ap_sum == total

nums = [-3, 5, 1, -2, -1, 0, 2, 4, 3]
print(solve(nums))  # Output: True

ইনপুট

[-3, 5, 1, -2, -1, 0, 2, 4, 3]

আউটপুট

True
  1. পাইথনে ল্যাম্বডা এক্সপ্রেশন ব্যবহার করে পজিটিভ এবং নেগেটিভ নম্বর রিঅরেঞ্জ করুন

  2. পাইথন প্রোগ্রাম লিস্টে পজিটিভ ও নেগেটিভ সংখ্যা কাউন্ট করা

  3. পাইথনে লিস্টে পজিটিভ এবং নেগেটিভ সংখ্যা গণনা

  4. পাইথনে ল্যাম্বডা এক্সপ্রেশন দিয়ে পজিটিভ এবং নেগেটিভ সংখ্যা পুনর্বিন্যাস