LeetCode 2545. 根据第 K 场考试的分数排序

news/2024/11/16 11:30:43/

班里有 m 位学生,共计划组织 n 场考试。给你一个下标从 0 开始、大小为 m x n 的整数矩阵 score ,其中每一行对应一位学生,而 score[i][j] 表示第 i 位学生在第 j 场考试取得的分数。矩阵 score 包含的整数 互不相同 。

另给你一个整数 k 。请你按第 k 场考试分数从高到低完成对这些学生(矩阵中的行)的排序。

返回排序后的矩阵。

示例 1:
在这里插入图片描述
输入:score = [[10,6,9,1],[7,5,11,2],[4,8,3,15]], k = 2
输出:[[7,5,11,2],[10,6,9,1],[4,8,3,15]]
解释:在上图中,S 表示学生,E 表示考试。

  • 下标为 1 的学生在第 2 场考试取得的分数为 11 ,这是考试的最高分,所以 TA 需要排在第一。
  • 下标为 0 的学生在第 2 场考试取得的分数为 9 ,这是考试的第二高分,所以 TA 需要排在第二。
  • 下标为 2 的学生在第 2 场考试取得的分数为 3 ,这是考试的最低分,所以 TA 需要排在第三。

m == score.length
n == score[i].length
1 <= m, n <= 250
1 <= score[i][j] <= 105
score 由 不同 的整数组成
0 <= k < n

解法一:直接排序:

class Solution {
public:vector<vector<int>> sortTheStudents(vector<vector<int>>& score, int k) {set<pair<int, int>, greater<pair<int, int>>> scoreAndId;int studentNum = score.size();for (int i = 0; i < studentNum; ++i) {scoreAndId.insert({score[i][k], i});}vector<vector<int>> res;for (pair<int, int> studentInfo : scoreAndId) {res.push_back(score[studentInfo.second]);}return res;}
};

如果有n个学生,此算法时间复杂度为O(nlgn),空间复杂度为O(n)。

解法二:原地排序:

class Solution {
public:vector<vector<int>> sortTheStudents(vector<vector<int>>& score, int k) {sort(score.begin(), score.end(), [k] (vector<int> &a, vector<int> &b) {return a[k] > b[k];});return score;}
};

如果有n个学生,此算法时间复杂度为O(nlgn),空间复杂度为O(1)。


http://www.ppmy.cn/news/303959.html

相关文章

针对CVE-2015-2545漏洞研究分析

本文讲的是 针对CVE-2015-2545漏洞研究分析&#xff0c; 1. 概述 这是一种MSOffice漏洞&#xff0c;允许通过使用特殊的 Encapsulated PostScript (EPS)图形文件任意执行代码。这种漏洞于2015年3月被发现&#xff0c;漏洞未修补情况持续了4个月。之后&#xff0c;微软发布了修复…

推荐 10 款让你的 Chrome 浏览器功能更强大的插件

Chrome 可以说是全世界最受欢迎的浏览器了&#xff0c;其快速、稳定的性能&#xff0c;简洁的设计以及多平台同步的功能都深受用户的推崇&#xff0c;然而很多人成为他的忠粉还是因为它强大的拓展性&#xff01; 在发现了这些功能实用又不太占地的小插件之后&#xff0c;简直要…

有哪些优质的电脑端浏览器推荐?

在当今数字化时代&#xff0c;使用电脑进行上网浏览已经成为了人们日常生活中必不可少的一部分。 出现了许多电脑端浏览器&#xff0c;为了更好地满足用户对于网页浏览的需求&#xff0c;那么&#xff0c;有哪些优质的电脑端浏览器能够介绍呢&#xff1f; 第一款&#xff1a;…

Chrome浏览器必备插件推荐

Chrome浏览器对于我们现在互联网行业已经不可或缺&#xff0c;其实大部分使用Chrome浏览器的人更看重的是它的强大的插件功能&#xff0c;几乎提供的插件无所不能。 本期我推荐的必备插件的原因是&#xff0c;好用的插件已经很多很多了&#xff0c;如果我在这里分享几十个或者…

Chrome 浏览器上最值得使用的8款插件

1.Chrome 清理大师 【点击下载】 一键清理您的浏览器缓存和垃圾&#xff0c;保护您的隐私&#xff0c;并使您的浏览器更快&#xff0c;更高效 只需一次点击&#xff0c;使您的浏览器超快&#xff01; 清理浏览器缓存&#xff0c;cookies&#xff0c;网站存储和其他垃圾。提高…

五大浏览器的简单介绍

文章目录 前言一、五大浏览器的介绍&#xff08;一&#xff09;五大浏览器&#xff08;二&#xff09;五大浏览器的开发公司&#xff08;三&#xff09;五大浏览器的内核 总结 前言 本文主要介绍了现在人们所常说的五大浏览器以及这五大浏览器的开发公司&#xff0c;同时也简单…

2021年10款优质Chrome浏览器插件推荐

Chrome插件像一个个小帮手&#xff0c;帮我们提升效率&#xff0c;完成一些有价值的事情。其实有很多这样的优质实用插件&#xff0c;很多人并不知道它们的存在&#xff0c;下面就特意为大家整理10款非常有用的插件。 1、哔哩哔哩助手&#xff1a;B站扩展程序 拥有视频区和直播…

强烈推荐 10 款珍藏的 Chrome 浏览器插件

Firebug 的年代&#xff0c;我是火狐&#xff08;Mozilla Firefox&#xff09;浏览器的死忠&#xff1b;但后来不知道为什么&#xff0c;该插件停止了开发&#xff0c;导致我不得不寻求一个新的网页开发工具。那段时间&#xff0c;不少人开始推荐 Chrome 浏览器&#xff0c;我想…