992. K 個不同整數的子數組

目錄

  • 一、題目
  • 二、思路
    • 2.1 解題思路
    • 2.2 代碼嘗試
    • 2.3 疑難問題
  • 三、解法
  • 四、收獲
    • 4.1 心得
    • 4.2 舉一反三

一、題目

在這里插入圖片描述

二、思路

2.1 解題思路

2.2 代碼嘗試

class Solution {
public:int subarraysWithKDistinct(vector<int>& nums, int k) {//需要有數據結構來存儲數組統計情況,還是采用哈希表unordered_map<int,int> map;int ret=0;int l=0,r=0;while(r<nums.size()){//窗口先伸展到最大map[nums[r]]++;ret+=cnt?=r-l+1<k0:while(map.size()>k){if(map[nums[l]]!=0){map[nums[l]]--;}else{map.erase[nums[l]];}l++;}}return ret;}
};

2.3 疑難問題

三、解法

class Solution {
public:int subarraysWithKDistinct(vector<int>& nums, int k) {int n = nums.size();vector<int> num1(n + 1), num2(n + 1);int tot1 = 0, tot2 = 0;int left1 = 0, left2 = 0, right = 0;int ret = 0;while (right < n) {if (!num1[nums[right]]) {tot1++;}num1[nums[right]]++;if (!num2[nums[right]]) {tot2++;}num2[nums[right]]++;while (tot1 > k) {num1[nums[left1]]--;if (!num1[nums[left1]]) {tot1--;}left1++;}while (tot2 > k - 1) {num2[nums[left2]]--;if (!num2[nums[left2]]) {tot2--;}left2++;}ret += left2 - left1;right++;}return ret;}
};作者:力扣官方題解
鏈接:https://leetcode.cn/problems/subarrays-with-k-different-integers/solutions/598045/k-ge-bu-tong-zheng-shu-de-zi-shu-zu-by-l-9ylo/
來源:力扣(LeetCode)
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

四、收獲

4.1 心得

4.2 舉一反三

count(k)-count(k-1)的思想

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

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

相關文章

領域驅動設計:事件溯源架構簡介

概述 事件溯源架構通常由3種應用設計模式組成,分別是:事件驅動(Event Driven),事件溯源(Event Source)、CQRS(讀寫分離)。這三種應用設計模式常見于領域驅動設計(DDD)中,但它們本身是一種應用設計的思想,不僅僅局限于DDD,每一種模式都可以單獨拿出來使用。 E…

PT2035 TWS 藍牙耳機雙觸控雙輸出 IC

1. 產品概述 PT2035 是一款支持入耳檢測的藍牙耳機專用觸摸芯片&#xff0c;該芯片具有寬工作電壓、低功耗、高抗 干擾能力的特性。 2. 主要特性 工作電壓范圍&#xff1a; 2.4~5.5V 待機電流約 2.5uAV DD3V/CMOD5nF 入耳有效&#xff0c;無觸摸時工作電流約 8uAV DD3…

AI編程界的集大成者——通義靈碼AI程序員

一、引言 隨著軟件行業的快速發展和技術的進步&#xff0c;人工智能&#xff08;AI&#xff09;正在成為軟件開發領域的一個重要組成部分。近年來&#xff0c;越來越多的AI輔助工具被引入到開發流程中&#xff0c;旨在提高效率、減少錯誤并加速創新。在這樣的背景下&#xff0…

Rocky Linux 8.5 6G內存 靜默模式(沒圖形界面)安裝Oracle 19C

Oracle19c 下載地址 Database Software Downloads | Oraclehttps://www.oracle.com/database/technologies/oracle-database-software-downloads.html#db_ee 目錄 一、準備服務器 1、服務器可以克隆、自己裝 2、修改主機名 3、重啟 4、關閉selinux 5、關閉防火墻 5.1、…

另辟蹊徑:多維度解析 STM32 微控制器

開篇&#xff1a;STM32 的廣泛影響力 在嵌入式系統的廣闊天地中&#xff0c;STM32 系列微控制器宛如一顆璀璨的明星&#xff0c;散發著耀眼的光芒。它憑借出色的性能、豐富的資源以及高性價比&#xff0c;在工業、醫療、消費電子等眾多領域廣泛應用&#xff0c;成為無數開發者…

DeepSeek 使用竅門與提示詞寫法指南

一、通用提示詞技巧 竅門分類技巧說明示例提示詞明確需求用“角色任務要求”明確目標作為健身教練&#xff0c;為30歲上班族設計一周減脂計劃&#xff0c;需包含飲食和15分鐘居家訓練結構化提問分步驟、分模塊提問第一步&#xff1a;列出Python爬蟲必備的5個庫&#xff1b;第二…

全監督、半監督、弱監督、無監督

全監督、半監督、弱監督、無監督 全監督學習&#xff08;Fully Supervised Learning&#xff09; 數據標注&#xff1a;使用的數據集包含大量的輸入數據&#xff08;特征&#xff09;以及與之對應的準確標注信息&#xff08;標簽&#xff09;。學習目標&#xff1a;通過學習輸…

c#實現485協議

在C#中實現RS-485協議通信,需要結合串口(SerialPort)操作和硬件收發控制(如RTS信號切換)。以下是詳細的步驟和示例代碼: 1. RS-485通信原理 物理層:RS-485是差分信號標準,支持多點通信(半雙工)。 收發控制:通過控制RTS(Request to Send)或DTR引腳切換發送/接收模式…

刪除變慢問題

問題&#xff1a; 有一個場景&#xff0c;每天都會刪除數據&#xff0c;SQL為delete from xxx where record_date < DATE_SUB(now(), INTERVAL ? DAY) limit 1000 &#xff0c;一直循環執行&#xff0c;當執行到最后一次滿足條件的時候&#xff0c;就會很慢 原理分析 索引與…

lua基礎語法學習

lua基礎語法學習 文章目錄 lua基礎語法學習1. 基礎2. 輸入輸出3. 分支結構與循環結構4. 函數5. 元表與元方法6. 面向對象 1. 基礎 注釋 --單行注釋--[[ 多行注釋 --]]標識符 標識符以一個字母 A 到 Z 或 a 到 z 或下劃線 _ 開頭后加上 0 個或多個字母&#xff0c;下劃線&…

使用DeepSeek實現自動化編程:類的自動生成

目錄 簡述 1. 通過注釋生成C類 1.1 模糊生成 1.2 把控細節&#xff0c;讓結果更精準 1.3 讓DeepSeek自動生成代碼 2. 驗證DeepSeek自動生成的代碼 2.1 安裝SQLite命令行工具 2.2 驗證DeepSeek代碼 3. 測試代碼下載 簡述 在現代軟件開發中&#xff0c;自動化編程工具如…

【SpringBoot】數據訪問技術spring Data、 JDBC、MyBatis、JSR-303校驗

Spring Boot 數據訪問技術及特性 目錄標題 Spring Boot 數據訪問技術及特性摘要1. 引言2. Spring Data架構與原理2.1 Spring Data概述2.2 Spring Data核心組件2.3 Spring Boot與Spring Data的集成機制 3. Spring Boot與JDBC的整合3.1 JDBC整合流程3.2 數據源自動配置3.3 JdbcTe…

【時序預測】深度時序預測算法的對比與核心創新點分析

時間序列預測是機器學習和深度學習領域的重要研究方向&#xff0c;廣泛應用于金融、交通、能源、醫療等領域。近年來&#xff0c;隨著深度學習技術的發展&#xff0c;各種基于深度學習的時間序列預測算法層出不窮。這些算法在模型架構、訓練方式和應用場景上各有特色。本文將對…

JVM線程分析詳解

java線程狀態&#xff1a; 初始(NEW)&#xff1a;新創建了一個線程對象&#xff0c;但還沒有調用start()方法。運行(RUNNABLE)&#xff1a;Java線程中將就緒&#xff08;ready&#xff09;和運行中&#xff08;running&#xff09;兩種狀態籠統的稱為“運行”。 線程對象創建…

android智能指針android::sp使用介紹

android::sp 是 Android 中的智能指針&#xff08;Smart Pointer&#xff09;的實現&#xff0c;用于管理對象的生命周期&#xff0c;避免手動管理內存泄漏等問題。它是 Android libutils 庫中重要的一部分&#xff0c;常用于管理繼承自 android::RefBase 的對象。 與標準庫中…

spring整合mybatis詳細步驟

spring整合mybatis的全部過程(整合方式一 &#xff1a;簡單版) 1.在pom.xml中導入mybatis相應的jar包&#xff1a; (2) < dependency > < groupId >org.mybatis</ groupId > < artifactId >mybatis</ artifactId > < version >3.5.3&…

2025年Linux主力系統選擇指南:基于最新生態的深度解析(附2025年發行版對比速查表)

Linux發行版生態在2025年持續演進&#xff0c;既有經典系統的迭代升級&#xff0c;也有新興項目的崛起。本文結合最新行業動態&#xff0c;從個人用戶到企業場景&#xff0c;梳理主力系統選擇策略&#xff0c;助你找到最適合的Linux發行版。 一、新手友好型&#xff1a;平滑過渡…

ai-2、機器學習之線性回歸

機器學習之線性回歸 1、機器學習2、線性回歸2.1、梯度下降法 3、python下調用scikit-learn 1、機器學習 2、線性回歸 ####所以y可以當成我們需要的結果&#xff0c;根據公式可以求的y一撇的值更小&#xff0c;所以更接近需要的結果&#xff0c;所以y一撇擬合性更好 2.1、梯度下…

Flutter 學習之旅 之 flutter 在 Android 端進行簡單的打開前后相機預覽 / 拍照保存

Flutter 學習之旅 之 flutter 在 Android 端進行簡單的打開前后相機預覽 / 拍照保存 目錄 Flutter 學習之旅 之 flutter 在 Android 端進行簡單的打開前后相機預覽 / 拍照保存 一、簡單介紹 二、簡單介紹 camera 三、安裝 camera 四、簡單案例實現 五、關鍵代碼 一、簡單…

【原創】Open WebUI 本地部署

使用官網的默認部署&#xff0c;遇到不少的問題。比如白屏問題&#xff0c;其實需要修改幾個參數即可。 其實在部署的時候有不少參數 WEBUI_AUTH False ENABLE_OPENAI_API 0 PATH /usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin LANG C.UTF-8…