栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

力扣——最小绝对差(Java)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

力扣——最小绝对差(Java)


一、题目引出

     问题:给你个整数数组 arr,其中每个元素都 不相同。请你找到所有具有最小绝对差的元素对,并且按升序的顺序返回。

    例:

输入:arr = [4,2,1,3]

输出:[[1,2],[2,3],[3,4]]

输入:arr = [1,3,6,10,15]

输出:[[1,3]]

这次题目也是在数组上面进行操作,通过几次题目可以看出来对于数组的使用还是挺重要的。


二、解题思路

    首先看题目中按升序返回,就很容易想到几种对于数组元素排序的方法——冒泡排序、快排、插入排序等;此处我用的是冒泡排序;除此之外,我相信很多人都是卡在这个List>上,它跟二维数组十分相似,但不是像二维数组那样维度固定,因此可以用它来保存具有最小绝对差的元素对。


三、List>用法

  创建:

List> 数组名=new ArrayList>();

例如:

List> listList=new ArrayList>()

存放数据(添加)

List list = new ArrayList<>();
list.add(1);//将元素1加入到list数组中
listList.add(list);//将数组list加入到数组listList中,也就是数组的数组

读取数组中元素

listList.get(1).get(2) ;   //先get行号,后get 列号

一维数组读取某一位元素:直接用get(num),其中num代表要读取哪一位


四、源代码
package LeetCode;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

class Solution {
    public static void bubbeSort(int []arry){ //冒泡排序
        int temp;
        for(int i=0;ii;j--){
                if(arry[i+1]> minimumAbsDifference(int[] arr) {
        bubbeSort(arr);
        //找出最小绝对差
        int min = arr[1] - arr[0];
        for (int i=2;i> listList = new ArrayList<>();
        for (int i=1; i list = new ArrayList<>();
                list.add(arr[i-1]);//将元素加入到数组中
                list.add(arr[i]);
                listList.add(list);//将数组list加入到listList中
            }
        }
        return listList;
    }

    public static void main(String args[]){
        Scanner input = new Scanner(System.in);
        int []arr1 = new int[4];
        System.out.println("向数组中输入四个元素:");
        for(int i =0 ; i 

 五、总结

    通过几次的做题发现,题目的出发都是千变万化,而且总会有你的知识盲区,所以还是得掌握好基础,这样才能避免做一个,第二个还是不会;同样每天得积累非常的重要,慢慢得知识盲区也一定会随之减少,所以我们一定要坚持每天学一点知识,累计成一座知识得大山。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1006649.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号