力扣题解(1030. 距离顺序排列矩阵单元格),带注释

题目描述

链接:点我

注意:多看几遍题目,开始没看懂...相当于计算矩阵网格里面的点(不要计算边界) 我开了题解才明白题的意思 orz...

题解

java 复制代码
class Solution {
    public int[][] allCellsDistOrder(int rows, int cols, int rCenter, int cCenter) {
        int ans[][] = new int[rows*cols][]; // 是一个二维整数数组,用于存储排序后的单元格坐标。
        for(int i = 0;i<rows;i++){
            for(int j=0;j<cols;j++)
                //将矩阵中的每个单元格的行索引 i 和列索引 j 存储在 ans 数组的相应位置上,从而形成一个具有二维坐标信息的数组。
                ans[cols*i + j] = new int[]{i,j}; //
        }
        // 自定义数组排序  参考:https://blog.csdn.net/qq_45733304/article/details/124350468
        Arrays.sort(ans, new Comparator<int[]>() {
            @Override
            public int compare(int[] o1, int[] o2) {
            	//升序排列  下标0表示行,1表示列
                return (Math.abs(o1[0] - rCenter) + Math.abs(o1[1] - cCenter))-(Math.abs(o2[0] - rCenter) + Math.abs(o2[1] - cCenter));  
            }
        });

        return ans;
    }
}
相关推荐
坐吃山猪21 分钟前
【多线程】ThreadPool线程池参数说明
java·网络
evans在进步1 小时前
Java 常用设计模式(二):装饰器、适配器、责任链、模板方法、策略与观察者
java·开发语言·设计模式
jvmind_dev1 小时前
频繁 new JedisCluster 之后,对象池为什么回不去了?
java·后端
AKA__Zas1 小时前
文件 I/O(速通版
java·intellij-idea·学习方法
学长毕业设计1 小时前
基于SpringBoot的咖啡馆管理系统的设计与实现(源码+文档+讲解视频)
java·spring boot·后端
骇客野人1 小时前
SpringBoot业财一体化系统设计和落地实施方案
java·spring boot·后端
学长毕业设计2 小时前
基于SpringBoot的教学资源推荐系统的设计与实现(源码+文档+讲解视频)
java·spring boot·后端
名字还没想好☜2 小时前
Java Cleaner 实战:替代废弃的 finalize() 做堆外资源清理,以及强引用导致永不回收的坑
java·后端·spring
LaughingZhu2 小时前
Product Hunt 每日热榜 | 2026-09-02
java·ide·intellij-idea
旧梦95272 小时前
Java EnumMap 详解:原理、用法与实战
java·开发语言