2月1日报

该博客介绍了如何使用Java实现一个二维数组的排序,数组元素为矩阵的坐标,并根据这些坐标到中心点的距离进行排序。主要涉及了数学的欧几里得距离计算,以及Java的Arrays.sort()方法与自定义比较器。此外,还展示了最小优先队列(MinPQ)的相关概念。

一些格式

empty 2d array: new int[0][];
“\t\t”
import static java.lang.System.*

floor() 对一个数向下取整

比较器

1030 Matrix Cells in Distance Order
格式为: Arrays.sort(target, (s1, s2) -> {expression});


class Solution {
    public int[][] allCellsDistOrder(int rows, int cols, int rCenter, int cCenter) {
        int[][] res = new int[rows*cols][2];
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < cols; j++) {
                int index = i*cols + j;
                res[index][0] = i;
                res[index][1] = j;
            }
        }

        Arrays.sort(res, (arr1, arr2) -> {
        int dis1 = dis(arr1[0], arr1[1], rCenter, cCenter);
        int dis2 = dis(arr2[0], arr2[1], rCenter, cCenter);
        return Integer.compare(dis1, dis2);}
        );

        return res;
    }

    private int dis (int x1, int y1, int x2, int y2) {
        return Math.abs(x1-x2) + Math.abs(y1-y2);
    }
}

MinPQ in java

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值