【Leetcode 每日一題】2799. 統計完全子數組的數目

問題背景

給你一個由 整數組成的數組 n u m s nums nums
如果數組中的某個子數組滿足下述條件,則稱之為 完全子數組

  • 子數組中 不同 元素的數目等于整個數組不同元素的數目。

返回數組中 完全子數組 的數目。
子數組 是數組中的一個連續非空序列。

數據約束

  • 1 ≤ n u m s . l e n g t h ≤ 1000 1 \le nums.length \le 1000 1nums.length1000
  • 1 ≤ n u m s [ i ] ≤ 2000 1 \le nums[i] \le 2000 1nums[i]2000

解題過程

子數組越長,包含的元素種類越多,越有可能符合條件,滿足單調性的要求,可以滑窗。
累計答案的時候需要注意,整個數組中元素的數目不會小于子數組中元素的數目。
出現某個范圍內的元素已經包含了所有種類,這時候擴展端點得到的所有子數組都是符合條件的。
其中,如果在內層循環中進行統計,那么右端點可以選擇從當前位置到數組末尾的所有所有位置;如果在內層循環結束時進行統計,那么左端點可以選擇從零位置開始到當前位置之前的所有位置。

具體實現

class Solution {public int countCompleteSubarrays(int[] nums) {int[] count = new int[2010];Set<Integer> set = new HashSet<>();for (int num : nums) {set.add(num);}int diff = set.size();int res = 0;int n = nums.length;for (int left = 0, right = 0; right < n; right++) {if (count[nums[right]]++ == 0) {diff--;}while (diff == 0) {if(--count[nums[left++]] == 0) {diff++;}// 在內層循環中統計答案,固定左端點得到的所有子數組都是符合條件的res += n - right;}// 在內層循環結束時統計答案,固定右端點得到的所有子數組都是符合條件的// res += left;}return res;}
}

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

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

相關文章

卷積神經網絡(二)

1 卷積運算的兩個問題&#xff1a; 1.1 圖像邊緣信息使用少 邊緣的像素點可能只會被用一次或者2次&#xff0c;中間的會用的更多。 1.2 圖像被壓縮 5*5的圖像&#xff0c;如果經過3*3的卷積核后&#xff0c;大小變成3*3的。 N*N的圖像&#xff0c;果經過F*F的卷積核后&#x…

組網技術-DHCP服務器,RIP協議,OSPF協議

1.DHCP Server提供三種IP地址分配策略&#xff1a; 手工分配地址 自動分配地址 n 動態分配地址 2.DHCP報文類型 DHCP DISCOVER(廣播)&#xff1a;用于尋址DHCP Server DHCP OFFER&#xff08;單播&#xff09;&#xff1a;攜帶分配給客戶端的IP地址 DHCP REQUEST&#xff08;…

反爬策略應對指南:淘寶 API 商品數據采集的 IP 代理與請求偽裝技術

一、引言? 在電商數據驅動決策的時代&#xff0c;淘寶平臺海量的商品數據極具價值。然而&#xff0c;淘寶為保障平臺安全和用戶體驗&#xff0c;構建了嚴密的反爬體系。當采集淘寶 API 商品數據時&#xff0c;若不采取有效措施&#xff0c;頻繁的請求極易觸發反爬機制&#x…

學習筆記(算法學習+Maven)

單調隊列優化多重背包 #include <bits/stdc.h> using namespace std; const int M 2010; const int N 20010; int q[N]; int hh 0, tt -1; int f[N]; int g[N]; int v[M], w[M], s[M]; int n, m; int main() { cin >> n >> m; for (int i 1; …

WPF之項目創建

文章目錄 引言先決條件創建 WPF 項目步驟理解項目結構XAML 與 C# 代碼隱藏第一個 "Hello, WPF!" 示例構建和運行應用程序總結相關學習資源 引言 Windows Presentation Foundation (WPF) 是 Microsoft 用于構建具有豐富用戶界面的 Windows 桌面應用程序的現代框架。它…

JAVAEE初階01

個人主頁 JavaSE專欄 JAVAEE初階01 操作系統 1.對下&#xff08;硬件&#xff09;管理各種計算機設備 2.對上&#xff08;軟件&#xff09;為各種軟件提供一個穩定的運行環境 線程 運行的程序在操作系統中以進程的形式存在 進程是系統分配資源的最小單位 進程與線程的關…

HTML快速入門-4:HTML <meta> 標簽屬性詳解

<meta> 標簽是 HTML 文檔頭部&#xff08;<head> 部分&#xff09;的重要元素&#xff0c;用于提供關于文檔的元數據&#xff08;metadata&#xff09;。這些數據不會直接顯示在頁面上&#xff0c;但對瀏覽器、搜索引擎和其他服務非常重要。 常用屬性 1. name 和 …

前端基礎之《Vue(12)—插件封裝》

一、插件封裝 1、在Vue生態中&#xff0c;除了Vue本身&#xff0c;其它所有的與Vue相關的第三方包&#xff0c;都是插件 例子&#xff1a; import VueRouter form vue-router Vue.use(VueRouter) // 注冊插件 2、如何封裝Vue插件 &#xff08;1&#xff09;第一種寫法 const…

TCP基礎題:音樂播放列表管理系統

需求描述 服務器端 創建一個 TCP 服務器&#xff0c;監聽本地的 9999 端口&#xff0c;支持多個客戶端連接。維護一個音樂播放列表&#xff0c;每個音樂條目包含歌曲名稱、歌手、時長等信息。能夠處理客戶端的以下請求&#xff1a; 添加音樂到播放列表&#xff1a;接收客戶端發…

Verilog 語法 (二)

在掌握了 Verilog 的基礎語法和常用程序框架之后&#xff0c;本節將帶大家深入學習一些 高級設計知識點。這些內容包括&#xff1a; 阻塞賦值&#xff08;&#xff09;與非阻塞賦值&#xff08;<&#xff09;的區別及使用場景&#xff1b; assign 和 always 語句的差異&am…

OpenCV 圖形API(61)圖像特征檢測------檢測圖像邊緣的函數Canny()

操作系統&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 編程語言&#xff1a;C11 算法描述 使用Canny算法在圖像中查找邊緣。 該函數在輸入圖像中查找邊緣&#xff0c;并使用Canny算法在輸出映射&#xff08;edges&#xff09;中標記它們…

ubantu中下載編譯安裝qt5.15.3

操作步驟如下&#xff1a; 克隆 Qt 倉庫&#xff1a; git clone https://code.qt.io/qt/qt5.git cd qt5 切換到 Qt 5.15.3 標簽&#xff1a; git checkout v5.15.3-lts-lgpl 初始化子模塊&#xff1a; perl init-repository 配置和編譯 Qt&#xff1a; ./configure -prefix $H…

畢業論文設計基本內容和要求:

畢業設計基本內容和要求&#xff1a; 研究內容 調查了解LAMP架構和PHP開發&#xff1b; 學習百度旅游調用的其他產品線服務并熟悉請求接口&#xff1b; 學習社區業務層規范&#xff1b; 設計并實現旅游主要模塊&#xff1b; 技術指標 熟悉企業中流程運轉的方式&#xff0c;…

【大語言模型】大語言模型(LLMs)在工業缺陷檢測領域的應用

大語言模型&#xff08;LLMs&#xff09;在工業缺陷檢測領域的應用場景正在快速擴展&#xff0c;結合其多模態理解、文本生成和邏輯推理能力&#xff0c;為傳統檢測方法提供了新的技術路徑。以下是該領域的主要應用場景及相關技術進展&#xff1a; 1. 多模態缺陷檢測與解釋 視…

【AI插件開發】Notepad++ AI插件開發1.0發布和使用說明

一、產品簡介 AiCoder是一款為Notepad設計的輕量級AI輔助插件&#xff0c;提供以下核心功能&#xff1a; 嵌入式提問&#xff1a;對選中的文本內容進行AI分析&#xff0c;通過側邊欄聊天界面與AI交互&#xff0c;實現多輪對話、問題解答或代碼生成。對話式提問&#xff1a;獨…

第2講:R語言中的色彩美學——科研圖表配色指南

目錄 一、背景導引:科研圖表為何需要“配色講究”? 二、色彩基礎認知:別讓“紅綠盲”錯過你的科研成果 三、R語言中的配色庫全景圖 四、案例演示與代碼實戰 ??案例1:ggplot2 + viridis 配色的熱圖 ??案例2:MetBrewer 中的印象派色彩 五、技巧點撥:如何為SCI圖…

基于Django的個性化股票交易管理系統

本項目基于Python3.6、Django2.1、MySql8.0&#xff08;最好不要使用5.6&#xff0c;字符集等方面均不兼容&#xff0c;否則導入數據庫會出錯&#xff09;與股票信息工具包TuShare實現。 創建或激活對應Python開發環境 這里使用了conda來管理環境&#xff0c;強烈推薦&#xf…

超越GPT-4?下一代大模型的技術突破與挑戰

超越GPT-4&#xff1f;下一代大模型的技術突破與挑戰 引言&#xff1a;大模型的演進歷程 人工智能領域近年來最引人注目的發展莫過于大型語言模型(Large Language Models, LLMs)的快速進步。從GPT-3到GPT-4&#xff0c;再到如今各種宣稱"超越GPT-4"的模型不斷涌現&…

Js 之點擊下拉搜索Ajax-Bootstrap-Select

一、效果圖 二、文檔 https://gitcode.com/gh_mirrors/aj/Ajax-Bootstrap-Select/tree/master 三、示例代碼 引入插件js、css <link rel"stylesheet" href"{php echo MODULE_URL}template/lib/bootstrap-select/css/bootstrap-select.min.css"> <…

無線監控系統分類全解析:搭配視頻融合平臺EasyCVR開啟高效監控

隨著技術的發展&#xff0c;無線監控系統在家庭、小型企業、特定行業以及室外惡劣環境中的應用越來越廣泛。本文將介紹幾種常見的無線監控系統&#xff0c;分析其優缺點&#xff0c;并結合EasyCVR視頻融合平臺的功能&#xff0c;探討如何優化無線監控系統的性能和應用。 一、主…