首页 > 其他分享 >304. 二维区域和检索 - 矩阵不可变(中)

304. 二维区域和检索 - 矩阵不可变(中)

时间:2024-03-27 10:58:53浏览次数:28  
标签:检索 matrix int 304 self 矩阵 x2 preSum

目录

题目

  • 给定一个二维矩阵 matrix,以下类型的多个请求:

    计算其子矩形范围内元素的总和,该子矩阵的 左上角 为 (row1, col1) ,右下角 为 (row2, col2) 。
    实现 NumMatrix 类:

    NumMatrix(int[][] matrix) 给定整数矩阵 matrix 进行初始化
    int sumRegion(int row1, int col1, int row2, int col2) 返回 左上角 (row1, col1) 、右下角 (row2, col2) 所描述的子矩阵的元素 总和 。

题解:二维前缀和

  • 计算每个矩阵 [0, 0, i, j] 的元素和

  • 目标矩阵之和由四个相邻矩阵运算获得

class NumMatrix:
    # 定义:preSum[i][j] 记录 matrix 中子矩阵 [0, 0, i-1, j-1] 的元素和
    def __init__(self, matrix: List[List[int]]):
        m, n = len(matrix), len(matrix[0])
        if m == 0 or n == 0: return
        # 构造前缀和矩阵
        self.preSum = [[0 for _ in range(n+1)] for _ in range(m+1)]
        for i in range(1, m+1):
            for j in range(1, n+1):
                # 计算每个矩阵 [0, 0, i, j] 的元素和
                self.preSum[i][j] = self.preSum[i-1][j] + self.preSum[i][j-1] + matrix[i-1][j-1] - self.preSum[i-1][j-1]

    # 计算子矩阵 [x1, y1, x2, y2] 的元素和
    def sumRegion(self, x1: int, y1: int, x2: int, y2: int) -> int:
        # 目标矩阵之和由四个相邻矩阵运算获得
        return self.preSum[x2+1][y2+1] - self.preSum[x1][y2+1] - self.preSum[x2+1][y1] + self.preSum[x1][y1]

标签:检索,matrix,int,304,self,矩阵,x2,preSum
From: https://www.cnblogs.com/lushuang55/p/18098420

相关文章

  • 【浅学】星火知识库文档检索生成问答Demo实测
    前置准备用讯飞大模型3.5搭建好应用,具体操作可以看我的这篇:讯飞星火大模型API,实名认证免费领一年有效期的200万Token,在控制台的左侧有星火知识库,实名认证过就可以开通免费的部分。用这个纯粹是因为免费,关于这个大模型的使用体验啥的不做评价,大家可以也选择自己喜欢的其他模......
  • 【IT老齐072】全文检索执行原理
    【IT老齐072】全文检索执行原理全文检索引擎就是对非结构化文本进行解析、搜索的技术非结构化文本的处理关键在于分词与倒排索引分词分词是指将一段文本中有用的词汇提取出来常见的中文分词算法Ngram穷举n=2语法分析+字典:按中文动名词分析推测外加分词字典维护爬......
  • 【IT老齐055】Mysql Ngram全文检索技术
    【IT老齐055】MysqlNgram全文检索技术场景select*fromarticlewheretitlelikeJava%可能用到索引,看索引选择性select*fromarticlewheretitledlike%Java一定不会用到索引select*fromarticlewheretitlelike%Java%一定不会用到索引解决......
  • Dijkstra邻接矩阵板子
    constintN=510;//节点个数intn;intg[N][N];//图intdist[N];//距离boolst[N];//判断点是否访问过intdijkstra(ints)//s表示起点,求s到任意点的最短距离{memset(dist,0x3f,sizeofdist);dist[s]=0;for(inti=0;i<n;i++){......
  • PaddleNLP:Docker下搭建基于ES的语义检索系统
    PaddleNLP:Docker下搭建基于ES的语义检索系统什么是语义检索?语义检索(也称基于向量的检索):指检索系统不再拘泥于用户Query字面本身(例如:sql查询的like),而是能精准捕捉到用户Query后面的真正意图并以此来搜索,从而更准确地向用户返回最符合的结果。原理是通过使用最先进的语义......
  • 代码随想录刷题记录4——滑动窗口和螺旋矩阵
    数组:701.二分查找27.移除元素977.有序数组的平方209.长度最小的子数组59.螺旋矩阵思路:209.长度最小的子数组只要知道要用滑动窗口的思路来写就好了!滑动窗口本质上就是双指针核心问题是考虑好窗口什么时候变大什么时候变小59.螺旋矩阵并没有什么新的算法思想,但......
  • 矩阵乘法学习笔记
    还是那句话,作者\(\LaTeX\)超级差。定义首先矩阵定义扔出来:域\(K\)上的一个\(n×m\)的矩阵可以看作一个\(n×m\)的数表。记为:\[A_{n×m}=\begin{bmatrix}A_{1,1}&\cdots&A_{1,m}\\\vdots&\ddots&\vdots\\A_{n,1}&\cdots&A_{n,m}\end{bmatrix}\]矩阵加法soeasy.......
  • 百度【灵境矩阵】智能体开发初学笔记
    AIAgent(人工智能代理)是一种能够感知环境、进行决策和执行动作的智能实体。AIAgent可以称为“智能体”,也可以理解为“智能业务助理”,指在大模型技术驱动下,让人们以自然语言为交互方式高自动化地执行和处理专业或繁复的工作任务,从而极大程度释放人员精力。灵境矩阵是百度推出的......
  • 解决长尾问题,BEV-CLIP:自动驾驶中复杂场景的多模态BEV检索方法
    解决长尾问题,BEV-CLIP:自动驾驶中复杂场景的多模态BEV检索方法理想汽车的工作,原文,BEV-CLIP:Multi-modalBEVRetrievalMethodologyforComplexSceneinAutonomousDriving链接:https://arxiv.org/pdf/2401.01065.pdf自动驾驶中对复杂场景数据的检索需求正在增加,尤其是随着......
  • 高等代数笔记:可逆矩阵
    目录方阵行列式性质可逆矩阵定义伴随矩阵与可逆矩阵可逆矩阵的性质几个重要性质初等变换法方阵行列式性质可逆矩阵定义定义1对于数域K上的矩阵A,如果存在矩阵B,使得\(AB=BA=I\),那么称A是可逆矩阵(或非奇异矩阵).tips:1)A、B可交换=>可逆矩阵一定是方阵.2)如果A是可逆矩阵,那么B唯......