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

A.每日一题——1351. 统计有序矩阵中的负数

题目链接:1351. 统计有序矩阵中的负数(简单)

算法原理:

解法:数学单调性

0ms击败100.00%

时间复杂度O(M+N)

咱假设m为列数,n是行数(反过来看也行,都是一样的),设置i和j分别表示列数和行数,一个放开头一个放末尾,以便利用单调性,那咱就让i放在末尾,i=m-1,j=0,然后只要还有剩余元素就一直持续找负数:

①如果发现(i,j)的元素是负数,那么该列的剩余元素也一定都是负数,ret+=n-j,然后这一列就不要了,直接去前一列继续找

②如果发现(i,j)的元素是正数,说明该行的该列不是负数,需要去下一行的此列寻找,j++

注意:这个过程是通过遍历每行来累加每列剩下全是负数的情况,充分利用了递减的单调性,所以不用再返回去重新遍历,时间复杂度从O(mn)降到了O(m+n)

Java代码:

class Solution { public int countNegatives(int[][] grid) { //这里把m看成列数,把n看成行数 int m=grid.length,n=grid[0].length; if(grid[0][0]<0) return m*n; int ret=0; int i=m-1,j=0; while(i>=0&&j<n){//还有剩余元素 if(grid[i][j]<0){ ret+=n-j;//这一列剩余元素都是负数 i--;//取该行的前一列继续找负数 }else j++;//该行的此列没有负数,去下一行的此列找,因为是递减,所以没必要再返回去重新找 } return ret; } }
http://www.jsqmd.com/news/173345/

相关文章:

  • 传统管理问题多,智能插座为高校宿舍违规电器治理开新路
  • 如何借助AI写论文?12款写论文的AI工具推荐,AI写作效率与低查重兼得! - 掌桥科研-AI论文写作
  • 【计算机毕业设计案例】基于SpringBoot的相机拍立得购买平台的设计与实现构建用户交流社区,分享拍摄技巧(程序+文档+讲解+定制)
  • 第七届护理与保健国际研讨会 (ICNH 2026)
  • 2026年食品科学与先进技术国际研讨会(FSAT 2026)
  • 数据资产变现:大数据领域的商业价值挖掘指南
  • 【计算机毕业设计案例】基于java的吉他谱分享平台的设计与实现基于SpringBoot的吉他谱分享平台的设计与实现(程序+文档+讲解+定制)
  • 物品复活系统开发总结 - CelestialZ
  • 软件测试实验室授权签字人任职条件及考核范围
  • 【深度实测】Google Gemini 3 Pro 全场景性能测评及订阅环境配置踩坑指南
  • 【毕业设计】基于SpringBoot的相机拍立得购买平台的设计与实现(源码+文档+远程调试,全bao定制等)
  • Java计算机毕设之基于SpringBoot的吉他谱分享平台的设计与实现基于SpringBoot+Vue的吉他谱分享平台管理系统设计与实现(完整前后端代码+说明文档+LW,调试定制等)
  • 英语_阅读_electric cars on the road_待读
  • Lux 上手指南:让 AI 直接操作你的电脑
  • 阿虎医考师承重构中医学习路径,打通从师承到执业的“最后1公里” - 资讯焦点
  • Markdown 编辑器技术调研:把“写”这件事拆给你看
  • 云雀播放器 6.34.12 | 高颜值音乐播放器,超一亿用户,动画非常流畅
  • 数据与算法架构提升之路
  • UDP与TCP
  • UGUI中Canvas的嵌套使用 - 冷夜
  • 化工防爆气象站:为化工生产提供关键的气象数据支持,有效预防安全事故的发生
  • 2025年山东省创新产品应用推荐目录的通知解析,中承信安助力企业信创产品认证
  • ML、DL与LLM实战讲解与分析
  • 计算机Java毕设实战-基于SpringBoot的相机拍立得购买平台的设计与实现相机销售、配件关联、订单管理的一体化【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • “道德黑客”的理解
  • 客户反馈,年底总结
  • Java毕设项目:基于springboot和vue的阅读交流分享平台(源码+文档,讲解、调试运行,定制等)
  • android room exportSchema
  • 基于springboot在线法律服务平台
  • PE之代码解析TLS表