题目来自LeetCode 1200
以下代码已AC,但我不知道第9行的 List<List<Integer>> 类型的变量 ans 为什么能被赋值为 new ArrayList<>() 。
我觉得,右边new出来的ArrayList根本没有规定是哪个泛型,而且也不是二维的,怎么就赋值给 ans 了呢?
package LC1200;
import java.util.*;
class Solution {
public List<List<Integer>> minimumAbsDifference(int[] arr) {
List<List<Integer>> ans = new ArrayList<>();
Arrays.sort(arr);
int minAbs = 1 << 30;
for (int i = 1; i < arr.length; i++) {
int tmp = Math.abs(arr[i] - arr[i - 1]);
if (tmp < minAbs) {
minAbs = tmp;
}
}
for (int i = 1; i < arr.length; i++) {
int tmp = Math.abs(arr[i] - arr[i - 1]);
if (tmp == minAbs){
ArrayList<Integer> twin = new ArrayList<>();
twin.add(arr[i-1]);
twin.add(arr[i]);
ans.add(twin);
}
}
return ans;
}
}