力扣560. 和為 K 的子數組

Problem: 560. 和為 K 的子數組

文章目錄

  • 題目描述
  • 思路
  • 復雜度
  • Code

題目描述

在這里插入圖片描述

思路

1.初始化一個哈希表preSum,用于記錄前綴和及其出現次數,ans記錄和為k的子數組數量、sum_i記錄當前前綴和;
2.將前綴和為 0 的情況存入哈希表,表示前綴和為 0 出現了一次。;
3.對數組 nums 進行遍歷,計算當前的前綴和 sum_i。計算當前前綴和減去 k 的值 sum_j,以此檢查是否存在從某個位置到當前位置的子數組和為 k。
4.如果 sum_j 存在于哈希表中,說明存在某個位置到當前位置的子數組和為 k,將其出現的次數累加到 ans 中。將當前前綴和 sum_i 存入哈希表,并記錄其出現次數。

復雜度

時間復雜度:

O ( n ) O(n) O(n);其中 n n n為數組的長度

空間復雜度:

O ( n ) O(n) O(n)

Code

class Solution {/*** Subarray Sum Equals K** @param nums Given array* @param k    Given number* @return int*/public int subarraySum(int[] nums, int k) {int n = nums.length;// Use HashMap to record the prefix and its occurrence//map< prefix sum, number of occurrences of the prefix sum >Map<Integer, Integer> preSum = new HashMap<>();preSum.put(0, 1);int ans = 0, sum_i = 0;// sum[j] and sum[i] -k are equalfor (int i = 0; i < n; i++) {sum_i += nums[i];// prefix and nums[0....j]int sum_j = sum_i - k;// If sum_j exists, update the answerif (preSum.containsKey(sum_j)) {ans += preSum.get(sum_j);}preSum.put(sum_i, preSum.getOrDefault(sum_i, 0) + 1);}return ans;}
}

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

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

相關文章

【Python】認識 Python

一、計算機基礎概念 1、什么是計算機 很多老一輩的人&#xff0c;管下面這個叫做計算機。然而&#xff0c;它只是 “計算器”&#xff0c;和計算機是有很大區別的。 現在我們所說的計算機&#xff0c;不光能進行算術運算&#xff0c;還能進行邏輯判斷、數據存儲、網絡通信等…

遇到no module named ‘pyLDAvis.sklearn‘的解決辦法

在NLP學習中&#xff0c;常常用到LDA主題模型對文本進行分類&#xff0c;可視化經常用到的代碼有 import pyLDAvis import pyLDAvis.sklearnpanel pyLDAvis.sklearn.prepare(lda, tf_idf, tf_idf_vectorizer) pyLDAvis.save_html(panel, lda_visualization.html) pyLDAvis.di…

HTML靜態網頁成品作業(HTML+CSS)—— 節日母親節介紹網頁(5個頁面)

&#x1f389;不定期分享源碼&#xff0c;關注不丟失哦 文章目錄 一、作品介紹二、作品演示三、代碼目錄四、網站代碼HTML部分代碼 五、源碼獲取 一、作品介紹 &#x1f3f7;?本套采用HTMLCSS&#xff0c;未使用Javacsript代碼&#xff0c;共有5個頁面。 二、作品演示 三、代…

騎砍2霸主MOD開發(12)-游戲實例GameEntity

一.GameEntity游戲實例 <1.通用GameEntity,梯子,椅子,攻城云梯,戰車等定義為GameEntity,一個GameEntity由若干GameEntityComponets組成,例如攻城云梯的輪子是一個獨立Component,支架是一個獨立Component, GameEntity GameEntityComponent1 GameEntityComponent2 GameEntit…

前端開發之WebSocket通信

WebSocket WebSocket是一種在單個TCP連接上進行全雙工通信&#xff08;雙向同時通信&#xff09;的協議&#xff0c;它允許服務器和客戶端之間自由地交換數據&#xff0c;無需反復建立連接。其特點包括&#xff1a; 雙向通信&#xff1a;實時性強&#xff0c;支持服務器向客戶…

移動端前端開發遇到過的Andorid和IOS的差異記錄

移動端前端開發遇到過的安卓和蘋果的差異記錄 1. 引入外部資源&#xff0c;最好用https2. IOS時間戳獲取NaN問題3. 金額三位分節顯示方式4. .webp圖片支持問題 1. 引入外部資源&#xff0c;最好用https ios處于安全性的考慮&#xff0c;不大支持http引入外部資源&#xff0c;所…

【kubernetes】探索k8s集群的配置資源(secret和configma)

目錄 一、Secret 1.1Secret 有四種類型 1.2Pod 有 3 種方式來使用 secret 1.3應用場景&#xff1a;憑據 1.4創建 Secret 1.4.1用kubectl create secret命令創建Secret 1.4.2內容用 base64 編碼&#xff0c;創建Secret 1.4.2.1Base64編碼 1.4.2.2創建YAML文件 1.4.2.3…

《計算機網絡》

計算題【33】 題目:假設一個有噪聲信道的帶寬為3KHz,信噪比為30dB,則該信道的最大數據傳輸速率是多少? C = W log2(1+S/N)(bit/s)=3000Hz* log2(1+30)= 29.9kbps 題目:一個網絡中,設定的IP地址范圍是:172.88.32.1至172.88.32.254,試確定其合適的子網掩碼。 分析第…

「前端+鴻蒙」鴻蒙應用開發預覽模擬器運行

在鴻蒙應用開發中&#xff0c;預覽和模擬器運行是開發流程中的重要環節&#xff0c;它們允許開發者在不使用實體設備的情況下測試應用的界面和功能。以下是如何使用華為DevEco Studio進行預覽和在模擬器上運行鴻蒙應用的詳細步驟&#xff0c;以及相應的示例代碼。 快速體驗-預覽…

277 基于MATLAB GUI火災檢測系統

基于MATLAB GUI火災檢測系統&#xff0c;可以實現圖片和視頻的火苗檢測。火焰識別的三個特征&#xff1a;1個顏色特征&#xff0c;2個幾何特征顏色特征&#xff1a;HSV顏色空間下&#xff0c;對三個通道值進行閾值濾波&#xff0c;幾何特征1&#xff1a;長寬比&#xff0c;幾何…

用 Python 擼一個 Web 服務器-第3章:使用 MVC 構建程序

Todo List 程序介紹 我們將要編寫的 Todo List 程序包含四個頁面&#xff0c;分別是注冊頁面、登錄頁面、首頁、編輯頁面。以下分別為四個頁面的截圖。 注冊頁面&#xff1a; 注冊 登錄頁面&#xff1a; 登錄 首頁&#xff1a; 首頁 編輯頁面&#xff1a; 編輯 程序頁面非…

程序員搞副業一些會用到的工具

微信號采集(爬蟲)技術的選型 那么&#xff0c;我們應該使用什么技術來從龐大的網頁內容中自動篩選和提取微信號呢&#xff1f;答案就是&#xff1a;數據采集技術&#xff0c;也就是爬蟲技術。 然而&#xff0c;數據采集技術種類繁多&#xff0c;我們具體應該采用哪一個呢&…

【Linux】—— 線程控制的基本介紹

目錄 &#xff08;一&#xff09;POSIX線程庫 &#xff08;二&#xff09;創建線程 2.1 線程ID及進程地址空間布局 &#xff08;三&#xff09;線程終止 &#xff08;四&#xff09;分離線程 &#xff08;一&#xff09;POSIX線程庫 POSIX線程庫&#xff08;POSIX Thread…

Node.js后端構建指南:MongoDB與Express的集成

安裝express 安裝 Express 并將其保存到依賴列表中&#xff1a; $ cnpm install express --save 以上命令會將 Express 框架安裝在當前目錄的 node_modules 目錄中&#xff0c; node_modules 目錄下會自動創建 express 目錄。以下幾個重要的模塊是需要與 express 框架一起安…

nss刷題(4)

1、[SWPUCTF 2021 新生賽]easyrce <?php error_reporting(0); highlight_file(__FILE__); if(isset($_GET[url])) { eval($_GET[url]); } ?> if(isset($_GET[url])) isset函數用來檢測url變量是否存在&#xff1b;$_GET函數獲取變量數據 eval($_GET[url]); eval函數用…

【GIS矢量切片】tippecanoe在Windows和CentOS中的安裝

組件安裝記錄 背景介紹Windows下安裝1、下載工具2、存放安裝包3、進入DOS終端4、在終端執行命令5、下載程序6、放置源碼7、修改配置信息8、編譯9、測試10、參數說明瓦片輸出瓦片描述和權屬信息輸入文件和圖層名輸入文件的并行處理輸入文件的投影縮放級別瓦片分辨率CentOS 7安裝…

嘗試用 GPT-4o 寫 2024高考語文作文

文章目錄 新課標I卷科技進步與問題的演變 新課標II卷抵達未知之境&#xff1a;探索與成長的旅程 全國甲卷坦誠交流&#xff1a;構建真正相遇的橋梁 北京卷歷久彌新 天津卷定義與自定義&#xff1a;在世界的繽紛中前行 上海卷認可度的思考與反思 新課標I卷 閱讀下面的材料&#…

Mongodb---java篇

一、導入依賴 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId></dependency> 二、編寫配置文件連接Mongodb 我的認證數據庫是admin&#xff0c;你們可能不一樣 sp…

第三篇——大數據思維的科學基礎

目錄 一、背景介紹二、思路&方案三、過程1.思維導圖2.文章中經典的句子理解3.學習之后對于投資市場的理解4.通過這篇文章結合我知道的東西我能想到什么&#xff1f; 四、總結五、升華 一、背景介紹 大數據時代&#xff0c;大數據思維的重要性不言而喻&#xff1b;而信息在…

Elasticsearch搜索優化-自定義路由規劃(routing)

在es的實踐學習中&#xff0c;我覺得它的文檔是最好的老師&#xff0c;所以先把這部分鏈接貼出來&#xff0c;本文只是引導&#xff0c;文檔全是細節&#xff0c;還是推薦大家事后認真看看文檔 Metadata fields-routing 在es搜索中&#xff0c;請求是先分發到所有分片&#x…