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

A.每日一题:3567. 子矩阵的最小绝对差

题目链接:3567. 子矩阵的最小绝对差(中等)

算法原理:

解法:暴力枚举

45ms击败9.09%

时间复杂度O((m-k+1)(n-k+1) · k² · log k),排序操作是复杂度的主导项

思路很简单

①在能够构成k×k子矩阵的前提下枚举每个左上角(i,j)

②针对每个左上角,将其所在k×k矩形的每个元素都扔进Set里天然去重

③将去重后的元素再扔进顺序表排序,因为只有排序后的两两数之间才能产生最小值

④更新两数间最小绝对值,将结果赋给结果数组ret[i][j]

优化

12ms击败90.91%

时间复杂度O((m-k+1)(n-k+1) · k² · log k),排序操作是复杂度的主导项

我们也可以用一个数组来替代上述的Set和顺序表操作

将数扔进数组中,对数组排序,由于数组升序,因此我们仅需保证两两的数不同再相减即可

Java代码:

class Solution { public int[][] minAbsDiff(int[][] grid, int k) { int m=grid.length,n=grid[0].length; int[][] ret=new int[m-k+1][n-k+1]; for(int i=0;i<m-k+1;i++){ for(int j=0;j<n-k+1;j++){ Set<Integer> hash=new HashSet<>(); for(int a=0;a<k;a++){ for(int b=0;b<k;b++){ hash.add(grid[i+a][j+b]); } } List<Integer> list=new ArrayList<>(); for(int x:hash) list.add(x); Collections.sort(list); int mn=0x3f3f3f3f; for(int l=0;l<list.size()-1;l++) mn=Math.min(mn,Math.abs(list.get(l)-list.get(l+1))); ret[i][j]=mn==0x3f3f3f3f?0:mn; } } return ret; } }
class Solution { //优化 public int[][] minAbsDiff(int[][] grid, int k) { int m=grid.length,n=grid[0].length; int[][] ret=new int[m-k+1][n-k+1]; int[] t=new int[k*k]; for(int i=0;i<m-k+1;i++){ for(int j=0;j<n-k+1;j++){ int index=0; for(int a=0;a<k;a++){ for(int b=0;b<k;b++){ t[index++]=grid[i+a][j+b]; } } Arrays.sort(t); int mn=0x3f3f3f3f; for(int l=0;l<k*k-1;l++) if(t[l]<t[l+1]) mn=Math.min(mn,t[l+1]-t[l]); ret[i][j]=mn==0x3f3f3f3f?0:mn; } } return ret; } }
http://www.jsqmd.com/news/514305/

相关文章:

  • OpenClaw二次开发入门:基于QwQ-32B接口扩展自定义技能
  • 2026别错过!9个降AI率网站开源免费测评,助你轻松降AIGC风险
  • 推荐1款电脑端效率神器,使用过再也不烦恼!
  • 星图平台实测:Clawdbot+Qwen3-VL打造飞书智能助手
  • Janus-Pro-7B应用场景:专利附图→技术特征提取+权利要求辅助撰写
  • Teable数据协作平台:从零开始构建企业级数据管理系统的实战秘籍
  • 别再只改报告描述符了!让Android正确识别蓝牙多点触摸设备的完整排查指南
  • meilisearch搜索引擎
  • 【谷歌TPU全栈技术解析】第三章 存储层次与片间互连网络
  • 无需下载模型!Qwen-Image-2512-SDNQ在线服务,随时随地创作
  • 忆联UM311b SATA SSD:企业级存储的高性能与高可靠解决方案
  • 【PCIE】Windows系统下FPGA的PCIE驱动安装与DMA读写性能实战解析
  • 探索AI原生应用在业务流程增强中的最佳实践
  • 在YOLO11中引入LWGA轻量分组注意力模块(AAAI 2026),实现涨点,保姆级别教程
  • 【言情小说推荐】可爱女人寻夫记:《遇见对的那个你》
  • EWMA滤波器:嵌入式系统低开销数据平滑方案
  • vue3+springboot+nodejs微信小程序人脸识别的游泳馆会员管理系统
  • 魔法加持!Win11家庭版WSL2极速安装Ubuntu24.04全记录
  • 从S4到Storm(一):当分布式遇上实时计算
  • HY-Motion 1.0镜像免配置指南:预置CUDA 12.1+PyTorch 2.3+PyTorch3D 0.7.5环境
  • 实战手记:华为S5720交换机从零到业务就绪的配置全流程
  • Electron 14+ 新特性:WebContentsView 实战指南(附与 BrowserView 对比)
  • 革新性PDF解析技术:LlamaParse的高效文档处理解决方案
  • LLE降维实战:用Python手把手实现局部线性嵌入(附完整代码)
  • 基于cnn深度学习的蓝色大棚识别 蓝色棚顶数据集 蓝色屋顶数据集 蓝色目标识别 色彩特征提取 遥感图像蓝色区域解析 yolo第10593期
  • Linux新手入门:创建带家目录用户meiga并配置sudo权限
  • 5分钟搞定:CLIP-GmP-ViT-L-14图文匹配测试工具从零到一
  • Qwen3-ASR-1.7B快速上手指南:3步启动Streamlit界面,完成MP3音频高精度转写
  • 迈向 99.99%:高可用系统架构的哲学与实战
  • ICPC2025西安区域赛题解