मान लीजिए हमारे पास nums नामक एक लिस्ट है, हमें जांचना है कि क्या हम nums के क्रम को इस तरह पुनर्व्यवस्थित कर सकते हैं कि हर दो लगातार संख्याओं के बीच का अंतर समान हो।
उदाहरण के लिए, यदि इनपुट है nums = [8, 2, 6, 4], तो आउटपुट होगा True, क्योंकि यदि हम nums को [2, 4, 6, 8] की तरह पुनर्व्यवस्थित करते हैं, तो हर दो लगातार संख्याओं के बीच का अंतर 2 है।
समाधान दृष्टिकोण
ऐरे को सॉर्ट करें। यदि सॉर्टेड ऐरे में लगातार अंतर समान है, तो इसे अंकगणितीय प्रोग्रेशन में पुनर्व्यवस्थित किया जा सकता है।
N = len(nums)।- यदि
N <= 2, तो True लौटाएं (कोई भी 2 तत्व AP बनाते हैं)। numsको सॉर्ट करें।targetDiff = nums[1] - nums[0]।i = 2सेN-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))
इनपुट
[8, 2, 6, 4]
आउटपुट
True