本文主要是介绍【找出第 K 大的异或坐标值】python,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
4层循环暴力超时
class Solution:def kthLargestValue(self, matrix: List[List[int]], k: int) -> int:nums=[]for a in range(len(matrix)):for b in range(len(matrix[0])):num=0for i in range(a+1):for j in range(b+1):num^=matrix[i][j]nums.append(num)nums.sort()return nums[-k]
使用前缀异或矩阵,再矩阵转列表
class Solution:def kthLargestValue(self, matrix: List[List[int]], k: int) -> int:#前缀矩阵nums=matrixfor a in range(len(matrix)):for b in range(len(matrix[0])):if a==0 and b==0:nums[a][b]=matrix[a][b]elif a==0:nums[a][b]=matrix[a][b]^nums[a][b-1]elif b==0:nums[a][b]=matrix[a][b]^nums[a-1][b]else:nums[a][b]=matrix[a][b]^nums[a][b-1]^nums[a-1][b]^nums[a-1][b-1]ret=[]#前缀矩阵转列表再排序for i in range(len(matrix)):for j in range(len(matrix[0])):ret.append(matrix[i][j])ret.sort()return ret[-k]
这篇关于【找出第 K 大的异或坐标值】python的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!