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

2024-04-28 16:28

本文主要是介绍2024.4.27力扣每日一题——查询网格图中每一列的宽度,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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;        
}

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

这篇关于2024.4.27力扣每日一题——查询网格图中每一列的宽度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/943713

相关文章

房产证 不动产查询

陕西政务服务网(便民服务)陕西政务服务网(手机版?更直观)不动产权证书|不动产登记证明(电子证照)商品房合同备案查询权利人查询

通过高德api查询所有店铺地址信息

通过高德api查询所有店铺地址电话信息 需求:通过高德api查询所有店铺地址信息需求分析具体实现1、申请高德appkey2、下载types city 字典值3、具体代码调用 需求:通过高德api查询所有店铺地址信息 需求分析 查询现有高德api发现现有接口关键字搜索API服务地址: https://developer.amap.com/api/webservice/gui

SQL Server中,查询数据库中有多少个表,以及数据库其余类型数据统计查询

sqlserver查询数据库中有多少个表 sql server 数表:select count(1) from sysobjects where xtype='U'数视图:select count(1) from sysobjects where xtype='V'数存储过程select count(1) from sysobjects where xtype='P' SE

力扣SQL50 每位经理的下属员工数量 join

Problem: 1731. 每位经理的下属员工数量 👨‍🏫 参考题解 Code select m.Employee_id, m.name,count(*) reports_count,round(avg(e.age),0) average_agefrom Employees ejoin Employees mon e.reports_to = m.Employee_id

Java中如何优化数据库查询性能?

Java中如何优化数据库查询性能? 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨在Java中如何优化数据库查询性能,这是提升应用程序响应速度和用户体验的关键技术。 优化数据库查询性能的重要性 在现代应用开发中,数据库查询是最常见的操作之一。随着数据量的增加和业务复杂度的提升,数据库查询的性能优化显得尤为重

BD错误集锦9——查询hive表格时出错:Wrong FS: hdfs://s233/user/../warehouse expected: hdfs://mycluster

集群环境描述:HDFS集群处于HA模式下,同时启动了YARN\JN\KAFKA\ZK。 现象: FAILED: SemanticException Unable to determine if hdfs://s233/user/hive/warehouse/mydb.db/ext_calllogs_in_hbase is encrypted: java.lang.IllegalArgument

MybatisPlus指定字段查询

一,上代码 QueryWrapper<Device> queryWrapper = Wrappers.query();queryWrapper.select("project_id as projectId,count(device_id) as total").in("project_id",projectIds).isNotNull("project_id").eq("del_flag",B

每日一练:攻防世界:5-1 MulTzor

一、XorTool 基于 XOR(异或)运算实现。它可以帮助您快速地对文本、二进制文件进行加密解密操作。 认识XorTool工具: 让我们先去认识一下工具: xortool.py 是基于 python 的脚本,用于完成一些 xor 分析,包括: 猜想 key 的长度 猜想 key 的值 解密一些经过 xoe 加密的文件 也就是说当遇到不知道文件类型的文件,可以尝试去看看它是否被xo

ORACLE 、达梦 数据库查询指定库指定表的索引信息

在Oracle数据库中,索引是一种关键的性能优化工具,通过它可以加快数据检索速度。在本文中,我们将深入探讨如何详细查询指定表的索引信息,以及如何利用系统视图和SQL查询来获取这些信息。 索引在数据库中的重要性 索引是一种数据结构,用于加快数据库表中数据的检索速度。它类似于书籍的目录,可以帮助数据库引擎快速定位数据行,特别是在大型数据集合下,其作用尤为显著。 查询指定表的索引信息 在Orac

算法11—判断一个树是不是二叉查询树

问题: 给定一个二叉树,判断它是否是二叉查询树。 思路: 要判断是否是二叉查询树,标准就是看每一个节点是否满足:1、左节点及以下节点的值比它小;2、右节点及以下节点的值比它大。当然,前提是子节点都存在的情况。所以,我们需要从根节点不断向下递归,只要所有节点都满足,那么就是BST,否则,就不是。 代码: [java]  view plain copy pri