首页 > 其他分享 >leetcode-1200-easy

leetcode-1200-easy

时间:2022-11-04 19:11:42浏览次数:51  
标签:arr List list 1200 add result easy diff leetcode

Minimum Absolute Difference

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

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

a, b are from arr
a < b
b - a equals to the minimum absolute difference of any two elements in arr
Example 1:

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

Input: arr = [1,3,6,10,15]
Output: [[1,3]]
Example 3:

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

2 <= arr.length <= 105
-106 <= arr[i] <= 106

思路一:数组排序后,对数组进行遍历,对于相邻的两个数字,完全分类,只可能出现三种情况,对这三种情况分别进行处理即可

  • diff 值小于最小
  • diff 值相等
  • diff 值大于最小
public List<List<Integer>> minimumAbsDifference(int[] arr) {
    Arrays.sort(arr);

    List<List<Integer>> result = new ArrayList<>();
    int min = Integer.MAX_VALUE;
    for (int i = 0; i < arr.length - 1; i++) {
        int diff = arr[i + 1] - arr[i];
        if (diff < min) {
            result.clear();

            List<Integer> list = new ArrayList<>();
            list.add(arr[i]);
            list.add(arr[i + 1]);
            result.add(list);

            min = diff;
        } else if (diff == min) {
            List<Integer> list = new ArrayList<>();
            list.add(arr[i]);
            list.add(arr[i + 1]);
            result.add(list);
        }
    }

    return result;
}

标签:arr,List,list,1200,add,result,easy,diff,leetcode
From: https://www.cnblogs.com/iyiluo/p/16858844.html

相关文章

  • leetcode-1984-easy
    MinimumDifferenceBetweenHighestandLowestofKScoresYouaregivena0-indexedintegerarraynums,wherenums[i]representsthescoreoftheithstudent.......
  • EasyCVR国标GB28181协议接入下的TCP和UDP模式说明及差异
    有用户在使用我们的平台时,经常会出现对于端口的疑问,同时也不了解端口的差别。今天我们来解释说明下EasyCVR平台关于国标GB28181协议接入下的TCP和UDP模式的说明及差异。......
  • 视频融合平台EasyCVR各项数据正常,却无法用海康NVR接入是什么原因?
    EasyCVR视频融合云平台开放度高、兼容性强、可支持灵活拓展与第三方集成,目前已经成为安防市场主流的视频能力层服务平台。平台可支持多协议、多类型的设备接入,包括国标GB28......
  • 我用EasyExcel优化了公司的导出(附踩坑记录)
    背景介绍最近要改一个导出的功能,在原有的基础上,在导出一份明细数据,要求导出内容加在原有excel的第二个sheet上。考虑到数据量还比较大,干脆引入阿里的EasyExcel来做......
  • leetcode 160. 相交链表 js 实现
    给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。图示两个链表在节点 c1 开始相交: ......
  • leetcode-136. 只出现一次的数字
    题目描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明说明:你的算法应该具有线性时间复杂度。你可以不......
  • LeetCode刷题记录.Day5
    反转链表题目链接206.反转链表-力扣(LeetCode)classSolution{public:ListNode*reverseList(ListNode*head){ListNode*temp;ListNode*c......
  • leetcode java 杨辉三角
    简介杨辉三角是一道简单题,可以通过类似一层推下一层的方式进行计算,但是好像看过一个题解,采用的方式是组合数。本来想采用组合数,尝试了double溢出尝试了long溢出,尝试......
  • LeetCode_Stack_589. N-ary Tree Preorder Traversal N 叉树的前序遍历【栈,迭代】【简
    目录​​一,题目描述​​​​英文描述​​​​中文描述​​​​示例与说明​​​​二,解题思路​​​​三,AC代码​​​​C++​​​​Java​​​​四,解题过程​​​​第一博​......
  • jqueryeasyui-datagrid-扩展-支持单元格编辑
    jqueryeasyui-datagrid很强大,可是在包含三五十个列的时候,datagrid行编辑器加载就忍无可忍了(这里用的IE浏览器,其他的浏览器稍微好些)因为写了一个日期&时间的编辑器的扩......