(56)删除每行中的最大值

文章目录

  • 1. 每日一言
  • 2. 题目
  • 3. 解题思路
  • 4. 代码
  • 5. 结语


1. 每日一言

抱怨过去发生的一切,就等于丧失了力量,白白浪费了往事要带给我们的成长。


2. 题目

题目链接:删除每行中的最大值

给你一个 m x n 大小的矩阵 grid ,由若干正整数组成。

执行下述操作,直到 grid 变为空矩阵:

从每一行删除值最大的元素。如果存在多个这样的值,删除其中任何一个。
将删除元素中的最大值与答案相加。
注意 每执行一次操作,矩阵中列的数据就会减 1 。

返回执行上述操作后的答案。

  • 示例 1:
    输入:grid = [[1,2,4],[3,3,1]]
    输出:8
    解释:上图展示在每一步中需要移除的值。
    在第一步操作中,从第一行删除 4 ,从第二行删除 3(注意,有两个单元格中的值为 3 ,我们可以删除任一一个)。在答案上加 4 。
    在第二步操作中,从第一行删除 2 ,从第二行删除 3 。在答案上加 3 。
    在第三步操作中,从第一行删除 1 ,从第二行删除 1 。在答案上加 1 。
    最终,答案 = 4 + 3 + 1 = 8 。

  • 示例 2:
    输入:grid = [[10]]
    输出:10
    解释:上图展示在每一步中需要移除的值。
    在第一步操作中,从第一行删除 10 。在答案上加 10 。
    最终,答案 = 10 。

提示:
m == grid.length
n == grid[i].length
1 <= m, n <= 50
1 <= grid[i][j] <= 100


3. 解题思路

将给出的数组按每一行排序,排好序后,从前往后(或者从后往前)依次取最后一列上最大的那个数max,让sum+=max,最后返回就行啦~

  1. 首先使用循环遍历二维数组的每一行,对每行的元素进行排序,确保每行的元素按升序排列。
  2. 接着通过比较每行的最后一个元素,找出每行的最大值,并将每行的最大值累加到变量 sum 中。
  3. 最后函数返回 sum,此时sum就代表了删除了每行最大值后的累加和结果。

4. 代码

//实现比较函数
int cmp(const void *p1,const void *p2) {
    return *(int*)p1 - *(int*)p2;
}

int deleteGreatestValue(int** grid, int gridSize, int* gridColSize) {
    int sum = 0;//存放答案

    //用循环对每行排序
    for(int i=0;i<gridSize;i++) {
        qsort(grid[i],*gridColSize,sizeof(int),cmp);
    }

    //比较每行的最后一个元素
    int col = *gridColSize-1;
    while(col>=0) {
        int max = grid[0][col];
        for(int i= 1;i<gridSize;i++) {
            if(max<grid[i][col]) {
                max = grid[i][col];
            }
        }
        sum+=max;
        --col;
    }

    return sum;
}

在这里插入图片描述


5. 结语

请给自己些耐心,一口吃不成胖子。
山外青山楼外楼,莫把百尺当尽头。
保持空杯心态加油努力吧!


都看到这里啦!真棒(*^▽^*)

可以给作者一个免费的赞赞吗,这将会鼓励我继续创作,谢谢大家

编程小白写作,如有纰漏或错误,欢迎指正


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/469999.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

线程工具类与原子类

参考文档&#xff1a; CountDownLatch、CyclicBarrier、Semaphore的用法和区别juc15_基本AtomicInteger、数组、引用AtomicStampedReference、对象的属性修改原子类 AtomicIntegerFieldUp 、原子操作增强类LongAdder 辅助工具类 CountDownLatch(闭锁) 做减法 允许一个或多个…

c语言文件操作(2)

1.文件的随机读写&#xff1a; fseek函数 int fseek ( FILE * stream, long int offset, int origin ); fseek函数是根据文件指针的位置和偏移量来定位文件指针。 其中&#xff0c;origin所含的参数&#xff1a; seek_set&#xff1a;文件开头 seek_cur&#xff1a;文件指…

DFS-重复覆盖模型

糖果 1243. 糖果 - AcWing题库 首先是最暴力的做法&#xff0c;我们枚举所有的选法&#xff0c;当某种选法可以尝到所有口味的糖果时&#xff0c;比较当前购买的糖果数和当前的res&#xff0c;迭代出res的最小值。这样进行搜索的话&#xff0c;最极端的状态下树的深度是n&…

腾讯云服务器多少钱1个月?2024一个月收费阿济格IE吧

2024腾讯云服务器多少钱一个月&#xff1f;5元1个月起&#xff0c;腾讯云轻量服务器4核16G12M带宽32元1个月、96元3个月&#xff0c;8核32G22M配置115元一个月、345元3个月&#xff0c;腾讯云轻量应用服务器61元一年折合5元一个月、4核8G12M配置646元15个月、2核4G5M服务器165元…

easyrecovery15易恢复中文绿色版 数据恢复软件易恢复 Ontrack EasyRecovery汉化破解版下载 易恢复软件免费版

易恢复 Ontrack EasyRecovery 由世界著名数据恢复公司 Ontrack 出品的威力非常强大的硬盘数据恢复软件。EasyRecovery 15破解版具备强大的磁盘诊断、数据恢复、文件修复功能。Ontrack EasyRecovery 能够帮你恢复由于误操作删除的&#xff0c;或者说格式化选成丢失的数据以及重建…

ASP .Net Core ILogger日志服务

&#x1f433;简介 ILogger日志服务是.NET平台中的一个内置服务&#xff0c;主要用于应用程序的日志记录。它提供了灵活的日志记录机制&#xff0c;允许开发者在应用程序中轻松地添加日志功能。以下是其主要特点和组件&#xff1a; ILogger接口&#xff1a;这是ILogger日志服…

Nacos下载和安装

&#xff08;1&#xff09;下载地址和版本 下载地址&#xff1a;Releases alibaba/nacos GitHub 解压在没有中文及空格的文件夹 &#xff08;2&#xff09;启动nacos服务 在bin目录下,打开命令行,输入 启动命令&#xff1a;sh startup.sh -m standalone - Linux/Unix/Mac …

(总结)OpenOFDM接收端信号处理流程

Overview — OpenOFDM 1.0 documentation 本篇文章为学习OpenOFDM之后的产出PPT&#xff0c;仅供学习参考。

3.19总结

A计划 题解&#xff1a;这题其实就是一个很简单的三维搜索&#xff0c;有了一个传送门&#xff0c;并且要确定是否传过去的对应位置是墙&#xff0c;防止被装死&#xff0c;同事呢又要在对应的t时间内完成&#xff08;不一定要卡着t时间恰好完成&#xff09; #include<ios…

鸿蒙实战开发:【FaultLoggerd组件】讲解

简介 Faultloggerd部件是OpenHarmony中C/C运行时崩溃临时日志的生成及管理模块。面向基于 Rust 开发的部件&#xff0c;Faultloggerd 提供了Rust Panic故障日志生成能力。系统开发者可以在预设的路径下找到故障日志&#xff0c;定位相关问题。 架构 Native InnerKits 接口 Si…

内存泄漏检测、单向链表的操作

我要成为嵌入式高手之3月19日数据结构第二天&#xff01;&#xff01; ———————————————————————————— valgrind内存测试工具 让虚拟机上网、在虚拟机上下载软件&#xff0c;参考笔记&#xff1a; 我要成为嵌入式高手之2月3日Linux高编第一天&am…

IPD集成产品开发:塑造企业未来竞争力的关键

随着市场竞争的日益激烈&#xff0c;企业对产品开发的要求也越来越高。如何在快速变化的市场环境中&#xff0c;既保证产品的批量生产效率&#xff0c;又满足客户的个性化需求&#xff0c;成为了企业面临的重要挑战。IPD&#xff08;集成产品开发&#xff09;模式&#xff0c;作…

【单点知识】基于实例讲解PyTorch中的Transforms类

文章目录 0. 前言1. 基本用法1.1 转换为Tensor1.2 图像大小调整1.3 随机裁剪1.4 中心裁剪1.5 随机翻转1.6 随机旋转1.7 填充1.8 组合变换 2. 进阶用法2.1 归一化2.2 色彩空间转换2.3 颜色抖动2.4 随机仿射2.5 透视变换2.6 自定义变换 0. 前言 按照国际惯例&#xff0c;首先声明…

Linux 常用操作命令大全

目录 一、命令大集合 1.1 whereis 1.2 which 1.3 sudo 1.4 grep 1.5 free 1.6 top 动态显示进程的状态 1.7 ps 静态显示进程信息 1.8 df 1.9 iostat 看IO性能状态 1.10 yum安装插件命令 1.11 rpm 1.12 scp远程拷贝 1.13 uname 二、linux网络命令 2.1 centos7 防火…

数据库只追求性能是不够的!

那些成功的数据库公司没有一家是通过性能比竞争对手更快而成功的。 作者&#xff1a;JORDAN TIGANI&#xff0c;DuckDB 公司 MotherDuck 联合创始人&CEO 本文和封面来源&#xff1a;https://motherduck.com/&#xff0c;爱可生开源社区翻译。 本文约 4500 字&#xff0c;预…

autojsx使用

工具&#xff1a; 投屏软件&#xff1a;https://www.sigma-rt.com/tc/download/ autojsx&#xff1a;https://github.com/kkevsekk1/AutoX/releases 开发文档&#xff1a;http://doc.autoxjs.com/#/ 开发工具&#xff1a;https://code.visualstudio.com/ vscode插件&#xff1a…

《世界之外》玩家闹上315,乙游打响维权大战

315维权微博的评论区&#xff0c;竟然被举报网易的玩家占领了。 玩家举报网易乙游《世界之外》虚假宣传侵害消费者权益&#xff0c;在游戏中设置排行榜和专属商店将玩家分为三六九等&#xff0c;诱导玩家消费氪金&#xff0c;强烈要求网易打开退款通道。 目前大批玩家举报的举…

【Leetcode】1793. 好子数组的最大分数

文章目录 题目思路代码复杂度分析时间复杂度空间复杂度 结果总结 题目 题目链接&#x1f517; 给你一个整数数组 n u m s nums nums &#xff08;下标从 0 0 0 开始&#xff09;和一个整数 k k k 。 一个子数组 ( i , j ) (i, j) (i,j) 的 分数 定义为 m i n ( n u m s …

YOLOv5目标检测学习(6):源码解析之:训练部分train.py

文章目录 前言一、导入相关包与配置二、主函数main2.1 checks&#xff1a;检查rank值来判断是否打印参数、检查git仓库、检查包的安装2.2 判断是否恢复上一次模型训练提问&#xff1a;opt.data, opt.cfg, opt.hyp, opt.weights, opt.project各是什么&#xff1f; 2.3 DDP mode&…

HarmonyOS NEXT应用开发之swiper指示器导航点位于swiper下方

介绍 本示例介绍通过分割swiper区域&#xff0c;实现指示器导航点位于swiper下方的效果。 效果预览图 使用说明 加载完成后swiper指示器导航点&#xff0c;位于显示内容下方。 实现思路 将swiper区域分割为两块区域&#xff0c;上方为内容区域&#xff0c;下方为空白区域。…
最新文章