跳到主要内容

5452. 判断能否形成等差数列 [easy]

5452. 判断能否形成等差数列 [easy]

https://leetcode-cn.com/problems/can-make-arithmetic-progression-from-sequence/

给你一个数字数组 arr 。

如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为 等差数列 。

如果可以重新排列数组形成等差数列,请返回 true ;否则,返回 false 。

示例 1:

输入:arr = [3,5,1]
输出:true
解释:对数组重新排序得到 [1,3,5] 或者 [5,3,1] ,任意相邻两项的差分别为 2 或 -2 ,可以形成等差数列。

示例 2:

输入:arr = [1,2,4]
输出:false
解释:无法通过重新排序得到等差数列。

提示:

  • 2 <= arr.length <= 1000
  • -10^6 <= arr[i] <= 10^6
  • 通过次数4,501提交次数5,332

First Try

2020-07-05

easy题目,没什么需要说的。参加的第一个双周赛第一道就是这个,快速做完了,想不到后面的一个半小时一道都没做出来。。。

class Solution(object):
def canMakeArithmeticProgression(self, arr):
"""
:type arr: List[int]
:rtype: bool
"""
if len(arr) <= 1:
return False
arr = sorted(arr)
gap = arr[1] - arr[0]
for i in range(2, len(arr)):
if arr[i] - arr[i-1] != gap:
return False
return True
  • 执行用时:28 ms, 在所有 Python 提交中击败了100.00%的用户
  • 内存消耗:12.7 MB, 在所有 Python 提交中击败了100.00%的用户