【算法】: 前綴和算法(利用o(1)的時間復雜度快速求區間和)

前綴和算法:高效處理區間求和的利器

目錄

  1. 引言
  2. 什么是前綴和
  3. 前綴和的基本實現
  4. 前綴和的作用
  5. 前綴和的典型應用場景
  6. 前綴和的優缺點分析
  7. 實戰例題解析

引言

  • 區間求和問題的普遍性
  • 暴力解法的時間復雜度問題
  • 前綴和算法的核心思想

什么是前綴和

  • 前綴和的數學定義

通俗來講,前綴和就是從某個位置到最開始的所有數據的和我們可以稱作前綴和

  • 一維前綴和的概念

從當前位置到數組開始的所有數據的和。

  • 二維前綴和的概念

從當前位置到矩陣和開始((0,0))構成的局部矩陣的所有元素之和。

前綴和的基本實現

前綴和的基本實現非常簡單,通過簡單的遍歷操作就能實現。

前綴和的作用

由于前綴和表示某個位置到數組或矩陣開頭的和,因此前綴和數組可以快速幫助我們獲取任意區間的和。

前綴和的典型應用場景

  1. 靜態數組的頻繁區間查詢
  2. 矩陣中的子矩陣求和
  3. 結合哈希表解決特定問題
    • 和為K的子數組個數
    • 連續子數組和整除問題
  4. 數據處理與統計應用

前綴和的優缺點分析

優點

  • 查詢時間復雜度O(1)
  • 實現簡單高效
  • 擴展性強

缺點

  • 需要額外O(n)空間
  • 原始數組不可變(動態數組需用其他結構)
  • 高維時空間消耗大

實戰例題解析

  1. 一維例題:LeetCode LCR 010. 題目鏈接
    在這里插入圖片描述
    解法和思路
    本題通過hash進行記憶化存儲前綴和,存儲我們遍歷時候當前位置之前的所有存在的前綴和,我們可以通過查找hash表判斷是否存在我們需要的前綴和的值。

  2. 二維例題:LeetCode 304. 二維區域和檢索 - 矩陣不可變
    在這里插入圖片描述
    解法和思路:
    同一維思想相仿,只不過在構造的時候二維更加復雜:

  • 構建prefix(前綴和矩陣) : prefix[i][j] = prefix[i - 1][j] + prefix[i][j - 1] - prefix[i -1][j - 1] + matrix[i][j]
    在這里插入圖片描述
  • 得到任意一個矩陣的和
    Sum({i,j} -> {s,t}) = prefix[s][t] - prefix[s][j - 1] - prefix[i - 1][t] + prefix[i - 1][j - 1]
  1. 拓展例題:統計美麗子數組數目(結合位運算前綴和)
    這道題可以自行思考:leetcode上面也有對應的題解。

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

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

相關文章

NDVI諧波擬合(基于GEE實現)

在遙感影像中,我們常用 NDVI(歸一化植被指數)來衡量地表植被的綠度。它簡單直觀,是生態監測、農情分析的基礎工具。但你是否注意到: NDVI 雖然“綠”,卻常常“亂”。 因為云層、觀測頻率、天氣干擾&#xf…

基于Python+YOLO模型的手勢識別系統

本項目是一個基于Python、YOLO模型、PyQt5的實時手勢識別系統,通過攝像頭或導入圖片、視頻,能夠實時識別并分類不同的手勢動作。系統采用訓練好的深度學習模型進行手勢檢測和識別,可應用于人機交互、智能控制等多種場景。 1、系統主要功能包…

黑馬點評--短信登錄實現

短信登錄 導入黑馬點評項目 導入資料中提供的SQL文件 其中的核心表有: tb_user :用戶表 tb_user_info :用戶詳情表 tb_shop:用戶信息表 tb_shop_type:商戶類型表 tb_blog:用戶日記表(達人…

AWS EC2實例安全遠程訪問最佳實踐

EC2 遠程連接方案對比 遠程訪問 Amazon EC2 實例主要有以下四種方式: Secure Shell (SSH) 遠程訪問AWS Systems Manager 會話管理器適用于 Linux 實例的 EC2 Serial ConsoleAmazon EC2 Instance Connect SSH 遠程訪問 SSH(Secure Shell)廣…

Idea如果有參數,怎么debug

如上圖,輸入輸出路徑是需要運行的時候給參數。 那么 FileInputFormat.setInputPaths(job, new Path(args[0])); FileOutputFormat.setOutputPath(job, new Path(args[1])); 給上面的代碼給參數的步驟為 1.在類名或者方法名上右鍵,選擇More Run/Debug…

Oracle Apps R12——報表入門2:單表——報表開發流程

☆開發思路 開發表報代碼流程中有幾個重要的組件和重要的知識點需要搞懂,才能得心應手。報表通常是通過表格的形式來存在的,我們一般在開發代碼的時候在【輸出】中打印HTML,Css格式的表格,并把查詢到的數據插入其中,即可完成一個報…

Servlet的繼承關系和生命周期

1.繼承關系: javax.servlet.Servlet接口->javax.servlet.GenericServlet抽象類 ->javax.servlet.http.HttpServlet抽象子類 2.相關方法: javax.servlet.Servlet: (1)void init(config) -初始化方法 &…

PEFT庫PromptTuningConfig 配置

PEFT庫 PromptTuningConfig 配置 "Prompt Tuning"的參數高效微調 PromptTuningConfig 核心參數解析 1. task_type="CAUSAL_LM" 作用:指定任務類型為因果語言模型(Causal LM)。說明:因果語言模型從左到右生成文本(如GPT系列),這與任務需求匹配(模…

【438. 找到字符串中所有字母異位詞】

Leetcode算法練習 筆記記錄 438. 找到字符串中所有字母異位詞 438. 找到字符串中所有字母異位詞 思路就是我們要找和p相同的詞,可以先排個序,每次取一個和p的size長度相同的窗口去滑動,符合就記錄,不符合繼續滑動。 public List&l…

React Hooks底層執行邏輯詳解、自定義Hooks、FiberScheduler

React Hooks底層執行邏輯詳解 React Hooks 在表面上看像普通的函數調用,背后卻隱藏著一套復雜而高效的運行時機制。要理解 React Hooks 的底層執行邏輯,需要從 React 如何管理組件的狀態與副作用入手。 🧠 一、React 為什么引入 Hooks&#…

Windows命令實用工具——tcping 命令工具安裝及基礎使用

Windows命令實用工具——tcping 命令工具安裝及使用 一、tcping 命令簡介二、tcping 的安裝1、tcping 官網下載安裝包2、將軟件包復制到 Windws 系統的 System32 目錄下面3、查看 tcping 命令是否安裝成功 三、tcping 工具簡單使用方法 一、tcping 命令簡介 tcping 的主要功能…

智慧化工園區安全風險管控平臺建設方案(Word)

1 項目概況 1.1 園區概況 1.1.1 XX化工園區簡況 1.1.2 企業現狀 1.1.3 園區發展方向 1.1.4 園區信息化現狀 1.2 項目建設背景 1.2.1 政策背景 1.3 項目建設需求分析 1.3.1 政策需求分析 1.3.2 安全生產監管需求分析 1.3.3 應急協同管理需求分析 1.3.4 工業互聯網安…

【動手學深度學習】2.3. 線性代數

目錄 2.3. 線性代數1)標量2)向量3)矩陣4)張量5)張量的基本性質6)降維7)點積8)矩陣-向量積9)矩陣-矩陣乘法10)范數11) 小結 2.3. 線性代數 本節將…

如何在項目當中使用redis進行范圍搜索

目錄 如何將地理位置數據保存到 Redis 中以支持范圍查詢 Redis 中的 GEO 類型是什么? 如何保存 GEO 數據到 Redis 分段解釋: RedisKey.POSTS_ANIMALS_LOCATIONS new Point(longitude, latitude) 如何進行范圍搜索 Redis GEO 范圍搜索核心語句 1…

物聯網低功耗保活協同優化方案:軟硬件與WiFi網關動態聯動

目錄 一、總體方案概述 二、架構組成 2.1 系統拓撲 2.2 硬件端(MCU + WiFi 模組) 2.3 WiFi 網關 2.4 云端服務器 三、低功耗保活技術設計模式 3.1 模式一:定時喚醒 + MQTT 保活 3.1.1 設備端 3.1.2 優勢 3.2 模式二:網關保活代理 + 本地網絡喚醒 3.2.1 網關功能…

UniApp+Vue3微信小程序二維碼生成、轉圖片、截圖保存整頁

二維碼生成工具使用uqrcode/js,版本4.0.7 官網地址:uQRCode 中文文檔(不建議看可能會被誤導) 本項目采用了npm引入方式,也可通過插件市場引入,使用上會略有不同 準備工作: 安裝:pnpm…

Zenmap代理情況下無法掃描ip

原因是開了代理會報錯 error “only ethernet devices can be used for raw scans on Windows” 在掃描參數后加 -sT -Pn,但會導致結果太多 例如:nmap -sT -T4 -A -v -Pn 10.44.2.0/24 如果你只是想找沒人用的IP,你不需要搞復雜的原始層掃描&…

將多個值關聯到同一個 key的map(key可以重復的map)示例

在 Java 中&#xff0c;標準的 Map 接口要求 key 必須唯一&#xff0c;如果需要 key 可重復 且保持 插入順序 的數據結構&#xff0c;可以使用以下方案&#xff1a; 1. 使用 List<Map.Entry<K, V>> 最直接的方式是用鏈表存儲鍵值對&#xff0c;允許重復 key&…

Arthas(阿爾薩斯)

一、Arthas 是什么&#xff1f; Arthas&#xff08;阿爾薩斯&#xff09;是阿里巴巴開源的一款 Java 在線診斷工具&#xff0c;基于 Java Agent 和字節碼增強技術實現。它無需重啟 JVM&#xff0c;即可動態追蹤代碼執行、實時查看 JVM 狀態、修改代碼邏輯&#xff0c;是生產環…

深入解讀Qwen3技術報告(三):深入剖析Qwen3模型架構

重磅推薦專欄&#xff1a; 《大模型AIGC》 《課程大綱》 《知識星球》 本專欄致力于探索和討論當今最前沿的技術趨勢和應用領域&#xff0c;包括但不限于ChatGPT和Stable Diffusion等。我們將深入研究大型模型的開發和應用&#xff0c;以及與之相關的人工智能生成內容&#xff…