题目地址:
https://leetcode.com/problems/can-make-arithmetic-progression-from-sequence/
给定一个长 n n n的数组 A A A,问是否能重排之使之成为一个等差数列。
排个序然后check一下即可。代码如下:
import java.util.Arrays;
public class Solution {
public boolean canMakeArithmeticProgression(int[] arr) {
if (arr.length == 1) {
return true;
}
Arrays.sort(arr);
int diff = arr[1] - arr[0];
for (int i = 2; i < arr.length; i++) {
if (arr[i] - arr[i - 1] != diff) {
return false;
}
}
return true;
}
}
时间复杂度 O ( n log n ) O(n\log n) O(nlogn),空间 O ( 1 ) O(1) O(1)。