前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode 1738. 找出第 K 大的异或坐标值(DP)

LeetCode 1738. 找出第 K 大的异或坐标值(DP)

作者头像
Michael阿明
发布2021-02-19 12:52:25
4460
发布2021-02-19 12:52:25
举报
文章被收录于专栏:Michael阿明学习之路

文章目录

947 / 3851,前 24.6%

2533 / 11282,前 22.5%

1. 题目

给你一个二维矩阵 matrix 和一个整数 k ,矩阵大小为 m x n 由非负整数组成。

矩阵中坐标 (a, b) 的 值 可由对所有满足 0 <= i <= a < m 且 0 <= j <= b < n 的元素 matrix[i][j](下标从 0 开始计数)执行异或运算得到。

请你找出 matrix 的所有坐标中第 k 大的值(k 的值从 1 开始计数)。

代码语言:javascript
复制
示例 1:
输入:matrix = [[5,2],[1,6]], k = 1
输出:7
解释:坐标 (0,1) 的值是 5 XOR 2 = 7 ,为最大的值。

示例 2:
输入:matrix = [[5,2],[1,6]], k = 2
输出:5
解释:坐标 (0,0) 的值是 5 = 5 ,为第 2 大的值。

示例 3:
输入:matrix = [[5,2],[1,6]], k = 3
输出:4
解释:坐标 (1,0) 的值是 5 XOR 1 = 4 ,为第 3 大的值。

示例 4:
输入:matrix = [[5,2],[1,6]], k = 4
输出:0
解释:坐标 (1,1) 的值是 5 XOR 2 XOR 1 XOR 6 = 0 ,为第 4 大的值。
 
提示:
m == matrix.length
n == matrix[i].length
1 <= m, n <= 1000
0 <= matrix[i][j] <= 10^6
1 <= k <= m * n

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/find-kth-largest-xor-coordinate-value 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 取第K大的值,偷懒直接排序做,时间复杂度 O ( m n log ⁡ ( m n ) ) O(mn\log(mn)) O(mnlog(mn))
  • 也可以使用容量为 k 的小顶堆做,时间复杂度 O ( m n log ⁡ ( k ) ) O(mn\log(k)) O(mnlog(k))
  • 可以使用快排做法,时间复杂度 O ( m n ) O(mn) O(mn)
代码语言:javascript
复制
class Solution {
public:
    int kthLargestValue(vector<vector<int>>& mat, int k) {
        int m = mat.size(), n = mat[0].size();
        vector<vector<int>> dp(m+1, vector<int>(n+1, 0));
        vector<int> ans(m*n);
        int K = 0;
        for(int i = 1; i <= m; i++) {
            for(int j = 1; j <= n; j++) {
            	// 方便代码处理边界,下标从1开始
                dp[i][j] = dp[i-1][j]^dp[i][j-1]^dp[i-1][j-1]^mat[i-1][j-1];
                ans[K++] = dp[i][j];
            }
        }
        sort(ans.begin(), ans.end());
        return ans[m*n-k];
    }
};

500 ms 110.8 MB C++


本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/01/24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 1. 题目
  • 2. 解题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档