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

【LeetCode】每日一题 2024_11_9 设计相邻元素求和服务(构造,哈希)

前言

每天和你一起刷 LeetCode 每日一题~

LeetCode 启动!

题目:设计相邻元素求和服务

近几天不知道力扣发什么疯,每日一题出的太抽象了,我题解是写不了一点了 . . . 今天稍微正常了些,就又来更新了~

代码与解题思路

先读题:

题目给出一个矩阵,让我们求矩阵中元素的上下左右或者对角线的和;一道比较好理解的构造题

比较方便的思路是,在构造矩阵的环节遍历矩阵的所有元素,通过哈希表将矩阵每个元素对应的上下左右以及对角线的和用 kv 的形式存储,后续需要使用的时候就能直接通过 O(1) 的复杂度查询了~

具体细节有详细的注释,代码如下:

// 前 4 个是上下左右,后 4 个是对角线
var dir = []struct{x, y int}{{1, 0},{-1, 0},{0, -1},{0, 1},{1, 1},{1, -1},{-1, 1},{-1, -1},
}// 下标 0 保存 AdjacentSum 的 kv,下标 1 保存 DiagonalSum 的 kv
type NeighborSum [][2]int// 初始化
func Constructor(grid [][]int) NeighborSum {n := len(grid)s := make(NeighborSum, n*n)// 遍历整个 grid,初始化每个元素的上下左右/对角线,对应的 kv 值for i, row := range grid {for j, value := range row {for k, d := range dir {x, y := i+d.x, j+d.y if x >= 0 && x < n && y >= 0 && y < n { // 防止越界// k/4:假设是前 4 个,结果就为 0,是后四个结果为 1// 用于区分是上下左右还是对角线的和s[value][k/4] += grid[x][y]}}}}return s
}// 上下左右
func (t NeighborSum) AdjacentSum(value int) int {return t[value][0]
}// 对角线
func (t NeighborSum) DiagonalSum(value int) int {return t[value][1]
}/*** Your NeighborSum object will be instantiated and called as such:* obj := Constructor(grid);* param_1 := obj.AdjacentSum(value);* param_2 := obj.DiagonalSum(value);*/

每天进步一点点,我们明天不见不散~

可以和我刷一辈子的每日一题吗?
一题一题,积累起来就是一辈子。


http://www.mrgr.cn/news/69078.html

相关文章:

  • linux下编译安装memcached
  • Go语言的零值可用性:优势与限制
  • 蓝桥杯每日真题 - 第11天
  • 1、C语言学习专栏介绍
  • 修改mysql默认字符集
  • Flutter开发之flutter_local_notifications
  • RHCE的学习(14)
  • 2024-11-2025-03 - 通用人工智能技术 - 问卷调研 - 软考 - 流雨声
  • 域名+服务器+Nginx+宝塔使用SSL证书配置HTTPS
  • PostgreSQL 之递归查询
  • 如何在微服务架构中优化微信 Access Token 管理:解决频率限制与过期问题的最佳实践
  • SpringBoot2~~~
  • WOA-RF|鲸鱼算法-随机森林-回归-降维|多变量特征筛选降维-回归预测|Matlab
  • JAVA开源项目 服装销售平台 计算机毕业设计
  • 嵌入式linux中gpio子系统的开发与实现
  • 2024年最新互联网大厂精选 Java 面试真题集锦(JVM、多线程、MQ、MyBatis、MySQL、Redis、微服务、分布式、ES、设计模式)
  • 丹摩征文活动 |【AI落地应用实战】文本生成语音Parler-TTS + DAMODEL复现指南
  • 什么是上拉和下拉
  • 弄巧成拙的 PFC(Priority-based Flow Control)
  • SpringBoot框架:共享汽车行业的技术升级
  • 腾讯云双十一程序员的「采购单拼团攻略」
  • 进程相关内容
  • (done) gdb 在系统编程中的调试技巧
  • Redis中的数据结构
  • 四期书生大模型实战营(【基础岛】- 第1关 | 书生·浦语大模型开源开放体系)
  • 探针台的维护方法