当前位置: 首页 > article >正文

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

在本篇文章中,我们将探讨如何根据第 K 场考试的分数对学生进行排序。这个问题是 LeetCode 上的一个中等难度问题,涉及到排序算法和自定义比较函数的使用。

问题描述

解题思路

理解问题

首先,我们需要理解问题的核心:根据第 K 场考试的分数对学生进行排序。这意味着我们需要比较学生在第 K 场考试的分数,并据此确定他们的排名。

使用排序算法

C++ 提供了 std::sort 函数,它是一个非常高效的排序算法。我们可以使用这个函数,并提供一个自定义的比较函数来实现根据第 K 场考试分数的排序。

自定义比较函数

自定义比较函数需要能够比较两个学生在第 K 场考试的分数。如果一个学生的分数高于另一个学生,那么这个学生应该排在前面。

实现代码

以下是实现这个算法的 C++ 代码:

class Solution {
public:
    vector<vector<int>> sortTheStudents(vector<vector<int>>& score, int k) {
        vector<vector<int>> sc;
        if(k<0||k>=score[0].size())
            return score;
        sort(score.begin(),score.end(),[k](const vector<int>& a,const vector<int> &b)
        {
            return a[k]>b[k];
        });
        return score;
    }
};

代码解释

  1. 检查 k 的有效性:首先检查 k 是否在有效范围内,即 0 <= k < score[0].size()。如果不在有效范围内,直接返回原始的 score 矩阵。

  2. 使用 std::sort 和自定义比较函数:使用 std::sort 函数对 score 进行排序。自定义比较函数通过 lambda 表达式 [k](const std::vector<int>& a, const std::vector<int>& b) { return a[k] > b[k]; } 实现,它比较两个学生在第 K 场考试的分数。

  3. 返回排序后的矩阵:排序完成后,返回排序后的 score 矩阵。

总结

通过使用 std::sort 和自定义比较函数,我们可以高效地根据第 K 场考试的分数对学生进行排序。这种方法不仅代码简洁,而且利用了 C++ 标准库的高效排序算法,能够处理大规模数据的排序问题。


http://www.kler.cn/a/511548.html

相关文章:

  • 【Leetcode 热题 100】70. 爬楼梯
  • python3GUI--仿崩坏三二次元登录页面(附下载地址) By:PyQt5
  • HTML<center>标签
  • WPF 实现可视化操作数据库的程序全解析
  • 重温STM32之环境安装
  • 计算机网络 (49)网络安全问题概述
  • Yii框架中的数据提取:从不同数据源获取数据
  • GoLang教程002:Go语言中的变量声明
  • Flutter+vsCode 安装问题记录
  • python怎么搞定输入??
  • 【Linux】Linux命令:ifconfig
  • Java 基于 SpringBoot+Vue 的校园数字化图书馆(源码+部署+文档)
  • 电梯系统的UML文档06
  • 从单机到集群:Docker、Kubernetes 与 Helm 部署 Redis 全攻略
  • Cyber Security 101-Offensive Security-SQLMap: The Basics(sqlmap基础)
  • 2024年博客成长记:成就、挑战与未来展望
  • 【AIGC】SYNCAMMASTER:多视角多像机的视频生成
  • 毕业就业信息|基于Vue的毕业就业信息管理系统的设计与实现(源码+数据库+文档)
  • apisix的authz-casbin
  • 【专题三:穷举vs暴搜vs深搜vs回溯vs剪枝】46. 全排列
  • Nginx关于servername配置无效的处理
  • PDF工具箱 PDF24 ,免费下载,非常好用
  • Spring Boot中的条件注解是如何工作的
  • 基于springboot+sureness的面向REST API资源无状态认证权限管理系统的后端
  • C++学习第五天
  • 前端for循环遍历2——filter使用