একটি আনসর্টেড অ্যারে 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] - কনসিকিউটিভ।
অ্যালগরিদম
- ন্যূনতম মান
init_termবের করুন। - AP যোগফল ফর্মুলা:
ap_sum = n*(2*init_term + (n-1))/2। - আসল যোগফল
totalবের করুন। 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