একটি অ্যারে nums দেওয়া আছে। এর এলিমেন্টগুলো কনসিকিউটিভ (সlauf) কিনা যাচাই করতে হবে।
উদাহরণ
ইনপুট: nums = [6, 8, 3, 5, 4, 7]
আউটপুট: True
ব্যাখ্যা: সর্টেড হলে [3,4,5,6,7,8]।
অ্যালগরিদম (ভিজিটেড অ্যারে ব্যবহার)
- মিন
min_valও ম্যাক্সmax_valবের করুন। - যদি
max_val - min_val + 1 == len(nums)হয়, তবে কনসিকিউটিভ হতে পারে। - ভিজিটেড অ্যারে (নেগেটিভ মার্কিং) দিয়ে ডুপ্লিকেট চেক করুন।
উদাহরণ কোড
def solve(nums):
if len(nums) < 1:
return False
min_val = min(nums)
max_val = max(nums)
if max_val - min_val + 1 == len(nums):
for i in range(len(nums)):
if nums[i] < 0:
j = -nums[i] - min_val
else:
j = nums[i] - min_val
if nums[j] > 0:
nums[j] = -nums[j]
else:
return False
return True
return False
nums = [6, 8, 3, 5, 4, 7]
print(solve(nums)) # Output: True
ইনপুট
[6, 8, 3, 5, 4, 7]
আউটপুট
True