1502. Can Make Arithmetic Progression From Sequence
Read the full problem statement on LeetCode.
Difficulty: easy Acceptance: 69% Topics: Array, Sorting
View full problem on LeetCode Reading material
Reference solution (spoiler · python)
# Time: O(n)
# Space: O(1)
class Solution(object):
def canMakeArithmeticProgression(self, arr):
"""
:type arr: List[int]
:rtype: bool
"""
m = min(arr)
d = (max(arr)-m)//(len(arr)-1)
if not d:
return True
i = 0
while i < len(arr):
if arr[i] == m+i*d:
i += 1
else:
j, r = divmod(arr[i]-m, d)
if r or j >= len(arr) or arr[i] == arr[j]:
return False
arr[i], arr[j] = arr[j], arr[i]
return True
Solution from kamyu104/LeetCode-Solutions · MIT
Similar questions