2024.4.27力扣每日一题——查询网格图中每一列的宽度

news/2024/5/12 22:17:57

2024.4.27

      • 题目来源
      • 我的题解
        • 方法一 遍历
        • 方法二 优化

题目来源

力扣每日一题;题序:2639

我的题解

方法一 遍历

遍历每一列的所有数字,并计算长度,取其中最大的作为这一列的结果

时间复杂度:O(nmC)。C表示数字的最大 字符串长度
空间复杂度:O(1)


public int[] findColumnWidth(int[][] grid) {int n=grid.length,m=grid[0].length;int[] res=new int[m];for(int i=0;i<m;i++){int t=0;for(int j=0;j<n;j++){t=Math.max(t,getNumLen(grid[j][i]));}res[i]=t;}return res;
}
//手动计算版本
public int getNumLen(int num){int res=0;if(num<=0){res++;num=-num;}while(num>0){num/=10;res++;}return res;        
}
//转换为字符串
public int getNumLen1(int num){return Integer.toString(num).length();     
}
方法二 优化

因为都是数字,因此不用每个都计算长度,只需要将一列的最小值和最大值计算长度就行了。

时间复杂度:O(nmC)
空间复杂度:O(1)

public int[] findColumnWidth(int[][] grid) {int n=grid.length,m=grid[0].length;int[] res=new int[m];for(int i=0;i<m;i++){//记录每一列的最小值和最大值int max=grid[0][i],min=grid[0][i];for(int j=0;j<n;j++){max=Math.max(max,grid[j][i]);min=Math.min(min,grid[j][i]);}int t=getNumLen(max);t=Math.max(t,getNumLen(min));res[i]=t;}return res;
}
public int getNumLen(int num){int res=0;if(num<=0){res++;num=-num;}while(num>0){num/=10;res++;}return res;        
}

有任何问题,欢迎评论区交流,欢迎评论区提供其它解题思路(代码),也可以点个赞支持一下作者哈😄~


http://www.mrgr.cn/p/55642243

相关文章

内网渗透-防火墙上线方案

windows防火墙默认规则为入站阻止,出站允许。 场景一:SQL服务器配置了防火墙 在单向防火墙中,攻击机可以使用正向,也可以使用反向上线web服务器,SQL服务器使用反向上线 场景二:WEB服务器配置了防火墙 在此场景中,攻击机需要使用反向来上线WEB服务器,SQL服务器使用正向上…

WEB攻防-.NET特性常见漏洞

目录 前置知识&#xff1a; DLL文件 .NET和DLL文件 C#和DLL文件 关系总结 .NET 配置调试-信息泄露 .NET 源码反编译-DLL 反编译与未授权访问 编译DLL文件 反编译DLL文件 注意事项 案例&#xff1a; 验证代码文件有没有可以绕过&#xff08;Cookie&Session&…

39、BlackRose(VulnHub)

BlackRose 一、nmap二、web渗透 随便看看注册进去 账号:xxxxxx 密码:xxxxxx目录爆破 有很多特殊的目录,不过访问后都重定向了burpsuite改包进admin 查看xxxxxx用户数据包 抓一些xxxxxx用户的一些记录包,看看有什么可用的 signature=&command=id&indexcsrf=3cb58993…

软件测试笔记_习题_面经

软件测试------按测试阶段划分有几个阶段? 单元测试、集成测试、系统测试、验收测试 软件测试------按是否查看源代码划分有几种测试方法? 黑盒、白盒、灰盒 软件测试------按是否运行划分有几种测试方法? 静态测试、动态测试 软件测试------按是否自动化划分有几种测试方…

Elasticsearch集群部署(Linux)

1. 准备环境 这里准备三台Linux虚拟机&#xff0c;用于配置Elasticsearch集群和部署可视化工具Kibana。 角色IP域名集群名称节点名称版本操作系统ES192.168.243.100linux100cluster-eses-node-1007.12.0CentOS 7192.168.243.101linux101cluster-eses-node-101192.168.243.102…

让研发规范管得住 - 我们为什么在流水线之上又做了研发流程?

让研发规范管得住是中大型研发团队的核心诉求,传统的流水线的模式去落地研发规范会存在不少局限。本文将聊聊我们在研发规范落地上的思考、从阿里内部获得的启发以及我们的解决方案。作者:子丑 为什么会有研发规范 很多程序员入职一家新的公司,领完电脑再安装完必备的开发工…

【Linux】基础指令

文章目录 基础指令1. pwd 指令2. cd 指令3. ls 指令4. touch 指令5. mkdir 指令6. rmdir 和 rm 指令7. man 指令8. cp 指令9. mv 指令10. cat 指令11. more 和 less 指令12. head 和 tail 指令13. date 指令14. cal 指令15. find 指令16. grep 指令18. zip 和 unzip 指令19. ta…

基于 Spring Boot 博客系统开发(四)

基于 Spring Boot 博客系统开发&#xff08;四&#xff09; 本系统是简易的个人博客系统开发&#xff0c;为了更加熟练地掌握 SprIng Boot 框架及相关技术的使用。&#x1f33f;&#x1f33f;&#x1f33f; 基于 Spring Boot 博客系统开发&#xff08;三&#xff09;&#x1f…

怎么提高职场辩论的口才能力的方法

提高职场辩论的口才能力是一个综合而复杂的过程&#xff0c;涉及知识积累、技巧学习、实践锻炼等多个方面。以下是关于如何提高职场辩论口才能力的详细分析和建议。 一、引言 在职场中&#xff0c;良好的口才能力对于个人职业发展具有重要意义。优秀的口才不仅能够提升个人的…

php 检测网络连接情况,限制超时时间

使用 dig 命令,并限制超时时间2秒:public function check_connection(){$response = shell_exec(dig +retries=1 +timeout=2 www.sina.com.cn);if (strpos($response, Got answer) !== false) {return 1;}return 0;} 试了 fsockopen 和调用 curl 命令,超时时间设置都不生效。…

解决IDEA中Tomcat控制台乱码问题(包括sout输出乱码)

文章目录 前言一、控制台直接输出乱码二、sout输出内容在控制台显示乱码 前言 今天在使用Tomcat的时候发现控制台输入出现了乱码问题&#xff0c;其实之前就出现过一次&#xff0c;解决了&#xff0c;但是新创建一个项目后又会出现sout的内容在控制台输出的乱码问题&#xff0…

模拟赛日常

赛前:胡了一个离谱的做法,毛估要写6k+时:写了一个完全不知道正确性的东西,还期望能过大样例时:发现样例于与程序输出差1,于是直接给答案加减1时:应用了一个懒得证明的看起来很对的结论后发现假完了:理论复杂度1e9甚至1e10跑进1s时:写了一个很假的甚至过不去大样例的东…

云原生Kubernetes: K8S 1.29版本 部署GitLab

目录 一、实验 1.环境 2.搭建NFS 3.K8S 1.29版本 部署Redis 4.K8S 1.29版本 部署Postgresql 5.K8S 1.29版本 部署GitLab 6.K8S 部署istio微服务 7.K8S 部署ingress应用路由 二、问题 1.K8S部署gitlab报错 2.gitlab创建失败 3.生成网关资源报错 4.安装istio 报错 …

LLM大语言模型(十三):ChatGLM3-6B兼容Langchain的Function Call的一步一步的详细转换过程记录

# LangChain&#xff1a;原始prompt System: Respond to the human as helpfully and accurately as possible. You have access to the following tools: Calculator: Useful for when you need to calculate math problems, args: {\calculation\: {\description\: \calcul…

[Paper Reading] DETR3D: 3D Object Detection from Multi-view Images via 3D-to-2D Queries

名称 DETR3D: 3D Object Detection from Multi-view Images via 3D-to-2D Queries 时间:21.10 机构:mit/CMU/Stanford TL;DR 一种利用Transformer做E2E的3D目标检测方法,在nuScenes自动驾驶数据集上取得很好效果。 Method主要创新点在于2D-to-3D Feature Transforms模块,细…

探索项目管理系统:解析五大功能,洞悉项目成功的关键

项目管理新手往往喜欢埋头苦干,殊不知优秀的项目经理已经熟练运用项目管理系统,让项目规划条理清晰。项目管理系统具备的功能,好用的项目管理系统都有这5大功能。分别是项目WBS分解、项目图表和报表、工时管理、团队协作、任务流程自动化。一、项目WBS分解 1.什么是项目WBS分…

PotatoPie 4.0 实验教程(26) —— FPGA实现摄像头图像拉普拉斯锐化

为什么要对图像进行拉普拉斯锐化 对图像进行拉普拉斯锐化的目的是增强图像的边缘和细节&#xff0c;使图像看起来更加清晰和锐利。这种技术常用于图像处理中&#xff0c;具体原因如下&#xff1a; 增强图像的边缘信息&#xff1a;拉普拉斯锐化可以突出图像中的边缘特征&#x…

适用于Windows和Mac的十大误删除数据恢复软件

数据恢复是从辅助存储或可移动文件中找回丢失、删除或损坏的数据的过程。数据丢失的原因有很多。因此&#xff0c;有必要恢复已删除的数据。有各种可用的软件工具&#xff0c;使用户能够恢复任何类型的已删除数据。但是&#xff0c;任何数据恢复都有四个主要阶段。他们正在修复…

CRM软件功能大揭秘:商业利器的多面功效与应用

一、 什么是CRM软件? CRM软件是指一款可以让企业利用相应的信息技术和互联网技术,协调企业与客户在销售、营销和服务方面的互动,提高其管理模式,为客户提供创新的个性化客户互动和服务的软件。使用CRM软件最终目标是吸引新客户,保留老客户,将现有客户转化为忠实客户,增加…