LeetCode 2799.統計完全子數組的數目

給你一個由 正 整數組成的數組 nums 。

如果數組中的某個子數組滿足下述條件,則稱之為 完全子數組 :

子數組中 不同 元素的數目等于整個數組不同元素的數目。
返回數組中 完全子數組 的數目。

子數組 是數組中的一個連續非空序列。

示例 1:

輸入:nums = [1,3,1,2,2]
輸出:4
解釋:完全子數組有:[1,3,1,2]、[1,3,1,2,2]、[3,1,2] 和 [3,1,2,2] 。
示例 2:

輸入:nums = [5,5,5,5]
輸出:10
解釋:數組僅由整數 5 組成,所以任意子數組都滿足完全子數組的條件。子數組的總數為 10 。

提示:

1 <= nums.length <= 1000
1 <= nums[i] <= 2000

滑動窗口,窗口內的元素符合完全子數組的數目時,加上窗口左邊的元素的子數組也是完全子數組:

class Solution {
public:int countCompleteSubarrays(vector<int>& nums) {unordered_set<int> setNum(nums.begin(), nums.end());int wholeDiffNum = setNum.size();int curDiffNum = 0;unordered_map<int, int> cnt;int left = 0;int ans = 0;for (int i = 0; i < nums.size(); ++i) {if (++cnt[nums[i]] == 1) {++curDiffNum;}while (curDiffNum == wholeDiffNum) {if (--cnt[nums[left]] == 0) {--curDiffNum;}++left;}ans += left;}return ans;}
};

如果輸入數組的大小為n,數組中的元素種類數為m,則此算法時間復雜度為O(n),空間復雜度為O(m)。

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

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

相關文章

33.表復制和去重

1.表結構的復制(LIKE) 當我們想復制一個表的時候&#xff0c;首先需要創建一個與被復制表相同結構的表。這時候就要用到關鍵字like&#xff1a; 語法使用&#xff1a; create table table_name LIKE temp_table 示例&#xff1a;復制一個和表emp&#xff08;老朋友了&#…

GitLab 18.1 正式發布Maven 虛擬倉庫、密碼泄露檢測等功能,可升級體驗!

GitLab 是一個全球知名的一體化 DevOps 平臺&#xff0c;很多人都通過私有化部署 GitLab 來進行源代碼托管。極狐GitLab 是 GitLab 在中國的發行版&#xff0c;專門為中國程序員服務。可以一鍵式部署極狐GitLab。 學習極狐GitLab 的相關資料&#xff1a; 極狐GitLab 官網極狐…

藍牙網絡拓撲面試通關:微微網與散射網原理 + 真題解析

為什么面試官總愛問藍牙拓撲? 你可能有過這樣的經歷:面試嵌入式 / 物聯網 / 無線通信崗位時,面試官突然問:“藍牙的微微網和散射網有什么區別?” 別慌!這不是在考你背定義,而是考察你對無線通信核心邏輯的理解 ——如何用有限資源實現高效組網。 藍牙作為短距離無線通信…

[Python]-基礎篇1- 從零開始的Python入門指南

無論你是尚未接觸編程的新手,還是想從其他語言轉向Python的開發者,這篇文章都是你的入門課。 一、Python是什么? Python是一種解釋型、高級、通用型編程語言,以簡潔明了、簡單易用著稱。它可以應用于網站開發、自動化腳本、數據分析、人工智能、系統操作等多種場景。 二、…

Objective-C面向對象編程:類、對象、方法詳解(保姆級教程)

目錄 一、核心概念 二、類的定義&#xff08;分.h和.m文件&#xff09; 1. 頭文件&#xff08;.h&#xff09;—— 公開聲明 2. 實現文件&#xff08;.m&#xff09;—— 具體實現 3. 屬性特性解析 原子性 所有權語義(ARC環境下) 讀寫控制 三、對象創建與內存管理 1…

CentOS 7 編譯ClickHouse 24.8完整指南

前言 在CentOS 7上編譯ClickHouse 24.8可能會遇到一些挑戰&#xff0c;主要是因為CentOS 7的默認軟件版本較舊。本文將詳細介紹從零開始構建ClickHouse 24.8的完整過程&#xff0c;包括依賴安裝和環境配置。 準備工作 首先確保系統已更新到最新版本&#xff1a; yum update…

Protocol Buffers (Protobuf) 全面解析

一、核心概念解析 1. 什么是數據序列化&#xff1f; #mermaid-svg-HZKw9iRlpQIRFiO3 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-HZKw9iRlpQIRFiO3 .error-icon{fill:#552222;}#mermaid-svg-HZKw9iRlpQIRFiO3 .…

高斯混合模型GMMK均值(十三-1)——K均值是高斯混合模型的特例

EM算法與K均值算法的關系 K均值可以看成是高斯混合模型的特例。 對K均值算法與EM算法進行比較后&#xff0c;可以發現它們之間有很大的相似性。K均值算法將數據點硬&#xff08;hard&#xff09;分配到聚類中&#xff0c;每個數據點唯一地與一個聚類相關聯&#xff0c;而EM算法…

StarRocks 向量索引如何讓大模型“記性更好”?

隨著 ChatGPT、DeepSeek 等大語言模型的普及&#xff0c;我們已經能夠與 AI 進行流暢的對話。然而&#xff0c;即使是最先進的大模型也面臨著“記憶困境”&#xff0c;具體表現模型只能記住訓練時接觸的知識&#xff0c;且這些知識在使用時很可能會過期。實際應用或在處理特定領…

UniApp Vue3 模式下實現頁面跳轉的全面指南

1. 引言 1.1 UniApp 與 Vue3 的結合優勢 UniApp 是一個使用 Vue.js 開發所有前端應用的框架,支持編譯到 iOS、Android、H5、以及各種小程序平臺。Vue3 提供了更高效的響應式系統和 Composition API,使開發體驗更加現代化和靈活。 1.2 頁面跳轉在應用開發中的重要性 頁面跳…

Solidity學習 - ABI 應用二進制接口

文章目錄 一、ABI 基礎概念1. ABI 與 API 的區別2. ABI 的核心作用 二、ABI 接口描述1. 編譯后的產物2. ABI JSON 格式示例3. ABI JSON 關鍵字段說明 三、ABI 編碼1. 編碼示例2. 編碼數據的組成3. Solidity 中的編碼函數 四、ABI 解碼1. 解碼的基本概念2. 事件日志的解碼 五、A…

星際爭霸數據集指南

星際爭霸作為檢驗AI效果的一個重要“模式生物”, 是驗證AI技術的重要平臺?&#xff0c;尤其在 深度學習 和 強化學習領域。該游戲因其復雜的游戲機制和實時決策要求&#xff0c;為AI研究提供了豐富的測試環境和挑戰。 本博文是記錄自己曾經研究星際爭霸AI時對于數據部分的一點…

VUE組件與組件之間的傳參

每次啟動vue2項目的時候在 vue.config.js中配置&#xff1a; const { defineConfig } require(vue/cli-service) module.exports defineConfig({transpileDependencies: true,//關閉語法嚴格檢驗lintOnSave:false})1&#xff1a;在 src 下 創建 utils 文件夾 然后創建 Bas…

8年java開發從零學習人工智能(深度學習)--pp飛槳(百度自研開源框架)

1.明確概念&#xff1a;人工智能>機器學習>深度學習&#xff0c;三者的關系是包含關系&#xff0c;如圖所示&#xff1a; 人工智能&#xff08;AI&#xff09;&#xff0c;很寬泛的概念&#xff0c;是研發用于模擬&#xff0c;延展和擴展人的智能的理論&#xff0c;方法&…

ci | cd

ci | cd 相當于開發人員和運維人員共同完成的東西 ci:Jenkins cd:k8s ci &#xff1a; 持續集成 開發人員寫出的代碼提交到共享倉庫 比如說Git 自動觸發代碼檢查 測試 好處&#xff1a; 很快的發現bug 代碼不用堆積 cd: 持續交付&#xff1a;代碼測試沒問題后 自動打包…

深入理解C#委托操作:添加、移除與調用全解析

關鍵詞&#xff1a;委托不可變性 多播委托 調用列表管理 ?? 一、委托的核心特性&#xff1a;不可變性 看似“添加”&#xff0c;實為新建 使用 為委托“添加”方法時&#xff08;如 delVar SCl.m3;&#xff09;&#xff1a; 系統創建全新委托對象新委托的調用列表 原…

Spring Cloud:微服務架構的基石與實踐指南

一、Spring Cloud 核心組件 &#xff08;一&#xff09;Spring Cloud Netflix Spring Cloud Netflix 是 Spring Cloud 的核心模塊之一&#xff0c;它集成了 Netflix 的多個開源組件&#xff0c;提供了微服務架構中常見的功能&#xff0c;如服務注冊與發現、配置中心、API 網關…

【VPX3U】國產嵌入式平臺:RK3588J×JH930硬件架構與紅外應用方案

隨著對邊緣計算與多媒體處理需求的提升&#xff0c;國產異構平臺成為關鍵發展方向。最近有一個項目需求&#xff0c;提出了一款基于瑞芯微 RK3588J 處理器與景嘉微GPU 的 VPX3U 規格嵌入式主板的設計想法旨在融合高性能異構計算與豐富的視頻、網絡和存儲接口&#xff0c;適用于…

秩序密碼-用群論分析魔方的階

三階魔方的物理基礎是由一個三維十字軸連接的 6 個中心塊&#xff0c;這 6 個中心塊決定了魔方的 6 種顏色朝向&#xff0c;構成不動的坐標系統&#xff0c;此外還有兩類活動塊&#xff0c;分別是8個角塊&#xff0c;12個棱塊。 魔方的每一層轉動&#xff08;如 R: 右層順時針…

Python驅動自動駕駛的“多眼”——打造高效傳感器融合框架的實戰思考

Python驅動自動駕駛的“多眼”——打造高效傳感器融合框架的實戰思考 最近,自動駕駛行業火得不行,背后支撐它的技術,遠不止車載攝像頭那么簡單。真正讓車“看懂”世界的,是多種傳感器數據的“融合”,包括雷達、激光雷達(LiDAR)、攝像頭、慣性測量單元(IMU)等等。 而如…