給你一個數字數組 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
思路:就排序遍歷即可。
class Solution {public boolean canMakeArithmeticProgression(int[] arr) {Arrays.sort(arr);for (int i = 1; i < arr.length - 1; ++i) {if (arr[i] * 2 != arr[i - 1] + arr[i + 1]) {return false;}}return true;}
}
?