如何用最短时间找到数组中最小绝对差值?

2026-04-11 10:151阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计449个文字,预计阅读时间需要2分钟。

如何用最短时间找到数组中最小绝对差值?

1200.+ 最小绝对差异 + 难度:简单思路:happy:+ 思路:题目并不是要求求得最小绝对差异值吗?我们可以先按照升序进行排序,然后从第二个值开始,每次减去前一个值。并用一个值 min 保存它们两个。

1200. 最小绝对差

难度:简单:happy:

如何用最短时间找到数组中最小绝对差值?

思路:题目不是让求最小绝对值差吗?我们可以先按照升序进行排序,然后让下标从第二个值开始,依次去减前一个元素。并用一个值min保存他们两个的差值,同时让它于我们之前设置的一个元素min_value(永远保存最小值)进行比较,如果min=min_value,添加进结果集res。若碰到了跟小的差值min<min_value,那就把之间的结果集清空res.clear(),并再次将min赋值给min_value,同时,重新添加元素。然后输出结果集res

class Solution { public List<List<Integer>> minimumAbsDifference(int[] arr) { //先按照升序进行排序 Arrays.sort(arr); //创建结果集 List<List<Integer>> res = new ArrayList<>(); //n用来保存arr的长度 int n = arr.length; //min_value用来保存最小值 int min_value = Integer.MAX_VALUE; //遍历 for(int i = 1 ;i < n; i++){ //计算差值,并保存给diff int min = arr[i]-arr[i-1]; if(min <= min_value){ if(min < min_value){ //调用list的clear方法,释放List集合 res.clear(); //把最小值赋值给min_value min_value = min; } //说明都是最小差值,差值都一样类似案例一的情况 res.add(List.of(arr[i-1],arr[i])); } } return res; } }

参考代码:2022/7/4

本文共计449个文字,预计阅读时间需要2分钟。

如何用最短时间找到数组中最小绝对差值?

1200.+ 最小绝对差异 + 难度:简单思路:happy:+ 思路:题目并不是要求求得最小绝对差异值吗?我们可以先按照升序进行排序,然后从第二个值开始,每次减去前一个值。并用一个值 min 保存它们两个。

1200. 最小绝对差

难度:简单:happy:

如何用最短时间找到数组中最小绝对差值?

思路:题目不是让求最小绝对值差吗?我们可以先按照升序进行排序,然后让下标从第二个值开始,依次去减前一个元素。并用一个值min保存他们两个的差值,同时让它于我们之前设置的一个元素min_value(永远保存最小值)进行比较,如果min=min_value,添加进结果集res。若碰到了跟小的差值min<min_value,那就把之间的结果集清空res.clear(),并再次将min赋值给min_value,同时,重新添加元素。然后输出结果集res

class Solution { public List<List<Integer>> minimumAbsDifference(int[] arr) { //先按照升序进行排序 Arrays.sort(arr); //创建结果集 List<List<Integer>> res = new ArrayList<>(); //n用来保存arr的长度 int n = arr.length; //min_value用来保存最小值 int min_value = Integer.MAX_VALUE; //遍历 for(int i = 1 ;i < n; i++){ //计算差值,并保存给diff int min = arr[i]-arr[i-1]; if(min <= min_value){ if(min < min_value){ //调用list的clear方法,释放List集合 res.clear(); //把最小值赋值给min_value min_value = min; } //说明都是最小差值,差值都一样类似案例一的情况 res.add(List.of(arr[i-1],arr[i])); } } return res; } }

参考代码:2022/7/4