একটি লিস্ট nums দেওয়া আছে। কি এটি রিয়ারেঞ্জ করা যায় যাতে সব কনsekutিভ পেয়ারের ডিফারেন্স একই হয় (অর্থাৎ আর্থমেটিক প্রোগ্রেশন বানানো যায়)।
উদাহরণ
nums = [8, 2, 6, 4] → আউটপুট: True
সর্টেড: [2, 4, 6, 8] — ডিফারেন্স ২।
এলগরিদম (O(n log n))
- যদি
len(nums) <= 2:True nums.sort()targetDiff := nums[1] - nums[0]for i in 2..len(nums)-1:- যদি
nums[i] - nums[i-1] != targetDiff:False
- যদি
Trueরিটার্ন করুন।
পাইথন কোড
def solve(nums):
N = len(nums)
if N <= 2:
return True
nums.sort()
targetDiff = nums[1] - nums[0]
for i in range(2, N):
if nums[i] - nums[i-1] != targetDiff:
return False
return True
nums = [8, 2, 6, 4]
print(solve(nums)) # আউটপুট: True
ইনপুট / আউটপুট
[8, 2, 6, 4] True