note:
- 找最小值,如何根据差值遍历一遍就能找到最小值,就是第一个for循,记住,初始min一定要取最大那个数,防止影想结果
- Integer类和List的相关类看下,属性和方法
class Solution {
public List<List<Integer>> minimumAbsDifference(int[] arr) {
/**
1.对数组排序
2.找出最小值
3.根据最小值,遍历
*/
Arrays.sort(arr);
int min=65535;
// int min = Integer.MAX_VALUE; 上面那句话最好用这句话代替,Integer类可以看看
for(int i=0;i<arr.length-1;i++){
if((arr[i+1]-arr[i])<min){
min=arr[i+1]-arr[i];
}
}
//上面的for循环可以用,下面这个代替,使用Math的min方法,其实就是上面的方法,这个方法要记住
// for (int i = 1; i < arr.length; i++) {
// min = Math.min(min, arr[i] - arr[i - 1]);
//}
List<List<Integer>> list=new ArrayList();
for(int i=0;i<arr.length-1;i++){
if((arr[i+1]-arr[i])==min){
ArrayList<Integer> emp=new ArrayList();
emp.add(arr[i]);
emp.add(arr[i+1]);
list.add(emp);
}
}
return list;
}
}