Java算法——识别网格内不同落区

时间:2025-02-16 08:25:04
private void selectPoint(short[][] shorts,Integer yIndex,Integer xIndex,Map<String,Point> points,Integer state){ //左上 int yLeftTop=yIndex-1;int xLeftTop=xIndex-1; if ((yLeftTop>=0 && yLeftTop<=shorts.length-1) && (xLeftTop>=0 && xLeftTop<=shorts[0].length-1)){ if (shorts[yLeftTop][xLeftTop]==1){ Set<String> keySet = points.keySet(); if (!keySet.contains(yLeftTop+"-"+xLeftTop)){ Point point = new Point(yLeftTop,xLeftTop,state); points.put(yLeftTop+"-"+xLeftTop,point); selectPoint(shorts,yLeftTop,xLeftTop,points,state); } } } //上 int yTop=yIndex-1;int xTop=xIndex; if ((yTop>=0 && yTop<=shorts.length-1) && (xTop>=0 && xTop<=shorts[0].length-1)){ if (shorts[yTop][xTop]==1){ Set<String> keySet = points.keySet(); if (!keySet.contains(yTop+"-"+xTop)) { Point point = new Point(yTop, xTop, state); points.put(yTop + "-" + xTop, point); selectPoint(shorts,yTop,xTop,points,state); } } } //以上部分代码 } @Data @AllArgsConstructor @NoArgsConstructor @ToString private static class Point{ private Integer yIndex;//y坐标 private Integer xIndex;//x坐标 private Integer state; //状态 }