From 267ea2a2eb0528f89522f9ac96711575a24984de Mon Sep 17 00:00:00 2001 From: huangge1199 Date: Wed, 19 May 2021 09:15:46 +0800 Subject: [PATCH] =?UTF-8?q?1738:=E6=89=BE=E5=87=BA=E7=AC=AC=20K=20?= =?UTF-8?q?=E5=A4=A7=E7=9A=84=E5=BC=82=E6=88=96=E5=9D=90=E6=A0=87=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/FindKthLargestXorCoordinateValue.java | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/src/main/java/leetcode/editor/cn/FindKthLargestXorCoordinateValue.java b/src/main/java/leetcode/editor/cn/FindKthLargestXorCoordinateValue.java index b7733c9..91881a1 100644 --- a/src/main/java/leetcode/editor/cn/FindKthLargestXorCoordinateValue.java +++ b/src/main/java/leetcode/editor/cn/FindKthLargestXorCoordinateValue.java @@ -64,23 +64,26 @@ public class FindKthLargestXorCoordinateValue { int xLength = matrix.length; int yLength = matrix[0].length; int[][] result = new int[xLength][yLength]; - List xor = new ArrayList<>(); - for (int i = 0; i < xLength; i++) { - for (int j = 0; j < yLength; j++) { - if (i == 0 && j == 0) { - result[0][0] = matrix[0][0]; - } else if (i > 0 && j > 0) { - result[i][j] = result[i - 1][j] ^ result[i][j - 1] ^ result[i - 1][j - 1] ^ matrix[i][j]; - } else if (i == 0) { - result[i][j] = result[i][j - 1] ^ matrix[i][j]; - } else { - result[i][j] = result[i - 1][j] ^ matrix[i][j]; - } + PriorityQueue xor=new PriorityQueue<>((o1,o2) -> {return o2-o1;}); + result[0][0] = matrix[0][0]; + xor.add(result[0][0]); + for (int i = 1; i < xLength; i++) { + result[i][0] = result[i - 1][0] ^ matrix[i][0]; + xor.add(result[i][0]); + } + for (int i = 1; i < yLength; i++) { + result[0][i] = result[0][i - 1] ^ matrix[0][i]; + xor.add(result[0][i]); + } + for (int i = 1; i < xLength; i++) { + for (int j = 1; j < yLength; j++) { + result[i][j] = result[i - 1][j] ^ result[i][j - 1] ^ result[i - 1][j - 1] ^ matrix[i][j]; xor.add(result[i][j]); } + }for(int i=0;i