原题
https://leetcode-cn.com/problems/find-kth-largest-xor-coordinate-value/
思路
前缀和,再排序
这里的前缀和需要稍微变换一下盗了大佬两张图
题解
class Solution {
public int kthLargestValue(int[][] matrix, int k) {
int row = matrix.length;
int col = matrix[0].length;
// 向右求异或结果
for (int i = 0; i < row; i++) {
for (int j = 1; j < col; j++) {
matrix[i][j] ^= matrix[i][j-1];
}
}
// 向下求异或结果
for (int i = 1; i < row; i++) {
for (int j = 0; j < col; j++) {
matrix[i][j] ^= matrix[i-1][j];
}
}
List<Integer> list = new ArrayList<>();
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
list.add(matrix[i][j]);
}
}
Collections.sort(list, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2-o1;
}
});
return list.get(k-1);
}
}