【前綴和】矩陣區域和

文章目錄

  • 1314. 矩陣區域和
    • 解題思路

在這里插入圖片描述

1314. 矩陣區域和

1314. 矩陣區域和

? 給你一個 m x n 的矩陣 mat 和一個整數 k ,請你返回一個矩陣 answer ,其中每個 answer[i][j] 是所有滿足下述條件的元素 mat[r][c] 的和:

  • i - k <= r <= i + k,
  • j - k <= c <= j + k
  • (r, c) 在矩陣內。

示例 1:

輸入:mat = [[1,2,3],[4,5,6],[7,8,9]], k = 1
輸出:[[12,21,16],[27,45,33],[24,39,28]]

示例 2:

輸入:mat = [[1,2,3],[4,5,6],[7,8,9]], k = 2
輸出:[[45,45,45],[45,45,45],[45,45,45]]

提示:

  • m == mat.length
  • n == mat[i].length
  • 1 <= m, n, k <= 100
  • 1 <= mat[i][j] <= 100

解題思路

? 首先我們要明白題目要我們干什么,其實就是求出矩陣中每個元素,它向外拓展 k 個單位之后形成的區域的總和,如下圖中以元素 4 為例,如果 k = 1 的話的情況:

在這里插入圖片描述

? 那其實這道題我們就可以用之前學過的二維前綴和來解決,大體思路都是一樣的,雖然我們給過模板,但是切記不要死記硬背,要理解模板是怎么來的!

? 下面的推導,統一使用以上圖中元素 4 為中心,k=1 的例子來推導!

? 還是一樣,首先我們需要一個二維的 dp 表來記錄前綴和,而 dp[i][j] 就表示從 [0, 0][i, j] 的元素總和

? 根據狀態表示和區域的累加,可以得到 dp[i][j] = dp[i - 1][j] + dp[i][j - 1] - dp[i - 1][j - 1] + mat[i][j],這個和模板題是類似的,這里就不細講了!

? 接著我們再創建一個二維數組 ret,用于記錄每個位置的區域和作為函數返回值的,此時和二維前綴和模板題不同的是,我們這次要求的區間需要我們自己去求出來,其實也不難,只要求出了要求的區域的左上角和右下角兩個坐標,就能得到這個區間的信息了,如下圖所示:

在這里插入圖片描述

? 也就是說,我們要求出圖中的 x1y1x2y2,但問題是,有可能這個區間的一部分是越界的,但是我們只要有效區間,所以我們需要做處理而不能單純的讓 x1 = 中心坐標 - k 這樣子去計算,會出錯的!

? 那么該如何靈活的計算這個可能越界的坐標情況呢???

? 其實非常簡單,首先假設中心元素 4 的坐標是 [i, j],然后做法如下所示:

? 以左上角為例,如果 i

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/79928.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/79928.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/79928.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MyBatis的SQL映射文件中,`#`和`$`符號的區別

在MyBatis的SQL映射文件中,#和$符號用于處理SQL語句中的參數替換,但它們的工作方式和使用場景有所不同。 #{} 符號 預編譯參數:#{} 被用來作為預編譯SQL語句的占位符。這意味著MyBatis會將你傳入的參數設置為PreparedStatement的參數,從而防止SQL注入攻擊,并允許MyBatis對…

Linux中為某個進程臨時指定tmp目錄

起因&#xff1a; 在linux下編譯k8s&#xff0c;由于編譯的中間文件太多而系統的/tmp分區設置太小&#xff0c;導致編譯失敗&#xff0c;但自己不想或不能更改/tmp分區大小&#xff0c;所以只能通過其他方式解決。 現象&#xff1a; tmp分區大小&#xff1a; 解決方法&#x…

Tomcat中Web應用程序停止時為了防止內存泄漏,JDBC驅動程序被強制取消注冊出現原因

1.問題描述 本地Windows環境開發的Springboot項目同樣的mysql版本&#xff0c;jdk版本&#xff0c;tomcat版本&#xff0c;本地運行沒有任何問題&#xff0c;發布到阿里云服務器上時報以下問題&#xff1a; 06-May-2025 20:06:12.842 警告 [main] org.apache.catalina.loader…

主流國產大模型(以華為盤古大模型和騰訊混元大模型為例)API調用接口的具體參數和使用方法,包括Python和C++的示例代碼

以下是主流國產大模型&#xff08;以華為盤古大模型和騰訊混元大模型為例&#xff09;API調用接口的具體參數和使用方法&#xff0c;包括Python和C的示例代碼。 華為盤古大模型 API參數&#xff1a; - model&#xff1a;模型名稱&#xff0c;如pangu-nlp-large。 - messages&…

高效調用京東 API 實戰:商品詳情頁實時數據采集接口開發指南?

在當今數字化商業環境中&#xff0c;電商數據的實時獲取與分析對于企業的決策制定和市場競爭力提升至關重要。京東作為國內領先的電商平臺&#xff0c;提供了豐富的 API 接口&#xff0c;允許開發者高效地獲取商品詳情頁的實時數據。本文將詳細介紹如何通過實戰開發&#xff0c…

MFC自定義控件開發與使用指南

MFC自定義控件開發與使用指南 自定義控件、雙緩沖 1. 概述 MFC(Microsoft Foundation Classes)框架提供了豐富的內置控件,但在實際開發中,我們常常需要創建自定義控件來滿足特定的界面需求。本文將詳細介紹如何在MFC中開發自定義控件,并以CCustomTextControl為例,展示自…

第100+40步 ChatGPT學習:R語言實現多輪建模

回顧一下什么叫多輪建模&#xff1a; 要綜合判斷一個模型好不好&#xff0c;一次隨機抽樣是不行的&#xff0c;得多次抽樣建模&#xff0c;看看整體的性能如何才行&#xff08;特別是對于這種小訓練集&#xff09;。 所以我的思路是&#xff0c;隨機抽取訓練集和驗證集2000次…

編碼器型與解碼器型語言模型的比較

編碼器型與解碼器型語言模型的比較 1. 引言 自然語言處理&#xff08;NLP&#xff09;領域近年來取得了革命性進展&#xff0c;這在很大程度上歸功于基于Transformer架構的語言模型。在這一技術生態中&#xff0c;編碼器型&#xff08;Encoder-only&#xff09;和解碼器型&am…

python--------修改桌面文件內容

目錄 1. 文件的讀寫1. 寫入文件2. 讀取文件3. 追加內容到文件 2.file_path 的常見方法1. 絕對路徑2. 相對路徑3. 使用 os.path 模塊構建路徑5. 路徑操作5. 用戶主目錄路徑 4. 修改文件內容1.將修改后的內容寫回文件2. 逐行處理文件內容3. 使用上下文管理器確保文件安全 1. 文件…

愛普生VG7050EFN壓控晶振在小基站的應用優勢

在 5G 通信時代&#xff0c;小基站作為提升網絡覆蓋和容量的重要一環&#xff0c;小基站的穩定運行對于保障用戶流暢的通信體驗起著關鍵作用。而在小基站的核心組件中&#xff0c;時鐘信號源的質量直接影響著通信質量和設備性能。愛普生VG7050EFN晶振憑借其高性能、小尺寸和低功…

人工智能如何革新數據可視化領域?探索未來趨勢

在當今數字化時代&#xff0c;數據如同洶涌浪潮般不斷涌現。據國際數據公司&#xff08;IDC&#xff09;預測&#xff0c;全球每年產生的數據量將從 2018 年的 33ZB 增長到 2025 年的 175ZB。面對如此海量的數據&#xff0c;如何有效理解和利用這些數據成為了關鍵問題。數據可視…

精益數據分析(42/126):移動應用商業模式的深度剖析與實戰要點

精益數據分析&#xff08;42/126&#xff09;&#xff1a;移動應用商業模式的深度剖析與實戰要點 在創業和數據分析的學習之路上&#xff0c;我們持續探索不同商業模式的奧秘&#xff0c;今天聚焦于移動應用商業模式。我希望和大家一起進步&#xff0c;深入解讀《精益數據分析…

未來 CSS:變量、容器查詢與新特性的探索

引言&#xff1a;CSS 演進與未來展望 在前端開發的快速發展浪潮中&#xff0c;CSS 已從簡單的樣式標記語言蛻變為構建現代設計系統的強大基礎。根據 HTTP Archive 的 Web Almanac 的調查&#xff0c;超過 86% 的網站已采用至少一項現代 CSS 特性&#xff0c;這一數字仍在持續攀…

概統期末復習--速成

隨機事件及其概率 加法公式 推三個的時候ABC&#xff0c;夾逼準則 減法準則 除法公式 相互獨立定義 兩種分析 兩個解法 古典概型求概率&#xff08;排列組合&#xff09; 分步相乘、分類相加 全概率公式和貝葉斯公式 兩階段問題 第一個小概率*A在小概率的概率。。。累計 …

論微服務架構設計及應用

目錄 摘要(300~330字) 正文(2000~2500字,2200字為宜) 背景介紹(500字做左右) 論點論據(1500字做左右)

【東楓科技】AMD / Xilinx Alveo? V80計算加速器卡

AMD / Xilinx Alveo? V80計算加速器卡 AMD/Xilinx Alveo ? V80計算加速器卡是一款功能強大的計算加速器&#xff0c;基于7nm Versal? 自適應SoC架構而打造。 AMD/Xilinx Alveo V80卡設計用于內存密集型任務。 這些任務包括HPC、數據分析、網絡安全、傳感器處理、計算存儲和…

基于大模型的自然臨產陰道分娩全流程預測與方案研究報告

目錄 一、引言 1.1 研究背景與目的 1.2 研究意義 1.3 國內外研究現狀 二、大模型技術原理與應用概述 2.1 大模型基本原理 2.2 在醫療領域的應用現狀 2.3 用于分娩預測的優勢 三、術前預測與準備方案 3.1 產婦身體狀況評估指標 3.2 大模型預測流程與方法 3.3 基于預…

macbook install chromedriver

# 打開 Chrome 訪問以下地址查看版本 chrome://version/# 終端查看版本號 (示例輸出: 125.0.6422.113) /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --version測試&#xff1a;

LeetCode 790 多米諾和托米諾平鋪 題解

對于本題不去看LeetCode的評論區和題解很難想到如何去dp&#xff0c;畢竟就算再怎么枚舉也很難找到適用于面向結果的規律。所以對于題解我建議大家還是去看一下靈神給的題解&#xff0c;以下是靈神匯總的圖&#xff0c;如果能看懂的話&#xff0c;對于解決題目有很大的幫助。 根…

Day17 聚類算法(K-Means、DBSCAN、層次聚類)

一、聚類算法 1. K-Means 聚類 原理&#xff1a;K-Means 是一種基于劃分的聚類算法&#xff0c;目標是將 n n n 個樣本劃分到 k k k 個簇中&#xff0c;使得簇內樣本的相似度盡可能高&#xff0c;簇間樣本的相似度盡可能低。算法通過迭代的方式&#xff0c;不斷更新簇的質心…