鱼C论坛

 找回密码
 立即注册
查看: 2910|回复: 0

[学习笔记] leetcode 1200. Minimum Absolute Difference

[复制链接]
发表于 2019-9-23 00:05:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. Given an array of distinct integers arr, find all pairs of elements with the minimum absolute difference of any two elements.

  2. Return a list of pairs in ascending order(with respect to pairs), each pair [a, b] follows

  3. a, b are from arr
  4. a < b
  5. b - a equals to the minimum absolute difference of any two elements in arr


  6. Example 1:

  7. Input: arr = [4,2,1,3]
  8. Output: [[1,2],[2,3],[3,4]]
  9. Explanation: The minimum absolute difference is 1. List all pairs with difference equal to 1 in ascending order.
  10. Example 2:

  11. Input: arr = [1,3,6,10,15]
  12. Output: [[1,3]]
  13. Example 3:

  14. Input: arr = [3,8,-10,23,19,-4,-14,27]
  15. Output: [[-14,-10],[19,23],[23,27]]


  16. Constraints:

  17. 2 <= arr.length <= 10^5
  18. -10^6 <= arr[i] <= 10^6
复制代码

  1. class Solution {
  2.     public List<List<Integer>> minimumAbsDifference(int[] arr) {
  3.         List<List<Integer>> res = new ArrayList<List<Integer>>();
  4.         Arrays.sort(arr);
  5.         
  6.         int min = arr[1] - arr[0];
  7.         int len = arr.length;
  8.         for(int i =0 ; i <len - 1 ; i++){
  9.             
  10.                
  11.             if( arr[i+1] -arr[i] < min) min = arr[i+1] -arr[i];
  12.             
  13.         }
  14.         
  15.         for(int i =0 ; i <len - 1 ; i++){
  16.             
  17.             List<Integer> list = new ArrayList<>();
  18.             
  19.                
  20.             if( arr[i+1] -arr[i] ==  min) {

  21.                
  22.                 list.add(arr[i]);
  23.                 list.add(arr[i+1]);
  24.                
  25.                     
  26.             }
  27.             if(list.size() == 2){
  28.                 res.add(list);
  29.                 list = new ArrayList<>();

  30.             }
  31.                
  32.             
  33.             if(list.size() == 2){
  34.                     res.add(list);
  35.                     list = new ArrayList<>();
  36.                     
  37.                 }
  38.                
  39.         }
  40.         
  41.         return res;
  42.     }
  43. }
复制代码

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-4 06:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表