經典滑動窗口試題(一)

在這里插入圖片描述


📘北塵_:個人主頁

🌎個人專欄:《Linux操作系統》《經典算法試題 》《C++》 《數據結構與算法》

??走在路上,不忘來時的初心

文章目錄

  • 一、將x減到0的最小操作數
    • 1、題目講解
    • 2、講解算法原理
    • 3、代碼實現
  • 二、無重復的最長子串
    • 1、題目講解
    • 2、講解算法原理
    • 3、代碼實現
  • 三、最大連續為1的個數
    • 1、題目講解
    • 2、講解算法原理
    • 3、代碼實現
  • 四、長度最小的子數組
    • 1、題目講解
    • 2、講解算法原理
    • 3、代碼實現


一、將x減到0的最小操作數

1、題目講解

在這里插入圖片描述

2、講解算法原理

在這里插入圖片描述

3、代碼實現

class Solution {
public:int minOperations(vector<int>& nums, int x) {int n=nums.size(),ret=0,sum=0,target,len=-1;for(int i=0;i<n;i++)ret+=nums[i];target=ret-x;if(target<0)  return -1;for(int left=0,right=0;right<n;right++){sum+=nums[right];while(sum>target)sum-=nums[left++];if(sum==target)len=max(len,right-left+1);}if(len==-1) return len;else return n-len;}
};

二、無重復的最長子串

1、題目講解

在這里插入圖片描述

2、講解算法原理

在這里插入圖片描述

3、代碼實現

class Solution {
public:int lengthOfLongestSubstring(string s) {int n=s.size();int count[128]={0},len=0;for(int left=0,right=0;right<n;right++){count[s[right]]++;while(count[s[right]]==2)count[s[left++]]--;len=max(len,right-left+1);}return len;}
};

三、最大連續為1的個數

1、題目講解

在這里插入圖片描述

2、講解算法原理

在這里插入圖片描述

3、代碼實現

class Solution {
public:int longestOnes(vector<int>& nums, int k) {int n=nums.size(),zero=0,len=0;for(int left=0,right=0;right<n;right++){if(nums[right]==0) zero++;while(zero>k)if(nums[left++]==0) zero--;}return len;}
};

四、長度最小的子數組

1、題目講解

在這里插入圖片描述

2、講解算法原理

在這里插入圖片描述

3、代碼實現

class Solution {
public:int minSubArrayLen(int target, vector<int>& nums){int n=nums.size(),len=INT_MAX;int sum=0;for(int left=0,right=0;right<n;right++){sum+=nums[right];while(sum>=target){len=min(len,right-left+1);sum-=nums[left];left++;}}return len==INT_MAX?0:len;}
};

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

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

相關文章

OpenCV數據類型及CV_16UC1深度圖ros訂閱

最近用到深度圖,對其數據類型及顯示有些迷惑,記筆記于此: 目錄 一、cv::Mat 的數據類型及轉換方式1. cv::Mat 數據類型2. cv::Mat 數據類型互轉2.1 OpenCV數據類型轉換的函數2.2 可視化深度圖像(CV_16UC1)二、cv::Mat 與 sensor_msgs::msg::Image 互轉(基于cv_bridge)1.…

黑臭水體的“黑”和“臭”形成的機理

水體“黑”和“臭”即呈現令人不悅的顏色和(或)散發令人不適氣味的水體。由于水環境遭受超過其自凈能力的有機污染&#xff0c;有機物的好氧分解使水體中耗氧速率大于復氧速率&#xff0c;造成水體缺氧&#xff0c;致使有機物降解不完全、速度減緩&#xff0c;厭氧生物降解過程…

mybatis 語法使用各種踩坑(持續更新中。。。)

1、大小寫命名&#xff1a;這個別說了&#xff0c;都是淚。 2、聯表查詢查詢&#xff0c;多條合成一條&#xff0c;不生效的原因 博主各種檢查關聯關系和字段大小寫&#xff0c;本來是4條數據最后合成一條數據&#xff0c;死活給你直接返回了4條數據&#xff0c;而且每個類似p…

leetcode刷題之用棧實現隊列(C語言版)

leetcode刷題之用棧實現隊列&#xff08;C語言版&#xff09; 一、題目描述二、題目要求三、題目解析Ⅰ、typedef structⅡ、MyQueue* myQueueCreateⅢ、void myQueuePush(MyQueue* obj, int x)Ⅳ、int myQueuePeek(MyQueue* obj)Ⅴ、int myQueuePop(MyQueue* obj)Ⅶ、bool myQ…

邦芒忠告:求職者面試時絕不能說的8件事

求職者在面試時應該注意言行舉止&#xff0c;避免提及一些敏感或不合適的話題&#xff0c;以下是一些絕不能說的事情&#xff1a; 1、攻擊性言辭&#xff1a;不要使用攻擊性言辭&#xff0c;如貶低、批評或攻擊公司、同事或競爭對手等&#xff0c;這會給人留下不成熟、不尊重他…

新手必看!!附源碼!!STM32通用定時器-比較輸出PWM

一、什么是PWM? PWM&#xff08;脈沖寬度調制&#xff09;是一種用于控制電子設備的技術。它通過調整信號的脈沖寬度來控制電壓的平均值。PWM常用于調節電機速度、控制LED亮度、產生模擬信號等應用。 二、PWM的原理 PWM的基本原理是通過以一定頻率產生的脈沖信號&#xff0…

SPSS多元對應分析

前言&#xff1a; 本專欄參考教材為《SPSS22.0從入門到精通》&#xff0c;由于軟件版本原因&#xff0c;部分內容有所改變&#xff0c;為適應軟件版本的變化&#xff0c;特此創作此專欄便于大家學習。本專欄使用軟件為&#xff1a;SPSS25.0 本專欄所有的數據文件請點擊此鏈接下…

紅隊攻防實戰之釘釘RCE

我這一生如履薄冰&#xff0c;你說我能走到對岸嗎&#xff1f; 本文首發于SecIN社區&#xff0c;原創作者即是本人 前言 網絡安全技術學習&#xff0c;承認??的弱點不是丑事。只有對原理了然于?&#xff0c;才能突破更多的限制。擁有快速學習能力的白帽子&#xff0c;是不…

vue3 教程(中)

偵聽器 用于偵聽指定變量&#xff0c;當其響應式狀態變化時觸發回調函數。 watch() watch() 需明確指定偵聽的數據源&#xff0c;并且僅當數據源變化時&#xff0c;才會執行回調&#xff0c;在創建偵聽器時&#xff0c;不會執行回調&#xff0c;可以獲取到數據源變化前后的值…

Flutter 父子組件通信

在Flutter 中父組件調用子組件的方法可以通過GlobalKey實現&#xff0c;而子組件調用父組件方法可以通過回調函數實現。 父組件 class _MyHomePageState extends State<MyHomePage> {final GlobalKey<LoadPencilState> loadPencilKey GlobalKey<LoadPencilSt…

react中虛擬dom,diff,fiber - 初級了解

借鑒&#xff1a; 「React深入」一文吃透虛擬DOM和diff算法 - 掘金 (juejin.cn) 虛擬dom、fiber、渲染dom、dom-diff - 掘金 (juejin.cn) 未閱讀源碼&#xff0c;了解層面&#xff0c;后續可以深入了解 1.虛擬DOM ①.結構上&#xff1a;虛擬DOM比真實DOM輕很多 ②.操作上&…

主流的低代碼平臺有哪些?程序員應該如何與低代碼相處?

本文主要闡述低代碼的概念&#xff0c;介紹目前主流的低代碼平臺&#xff0c;總結低代碼平臺的典型特征、存在優勢以及未來發展趨勢。并站在程序員的角度&#xff0c;分析如何在已經到來的低代碼戰爭中&#xff0c;找到自己的定位&#xff0c;一展所長。 什么是低代碼&#xff…

脈沖寬度基礎知識簡介

脈沖寬度是指脈沖所能達到的最大值所持續的周期時間。脈沖寬度是電子領域中一個重要的概念&#xff0c;它與脈沖重復間隔和占空比等參數密切相關。 脈沖寬度通常用于電信號的測量&#xff0c;可以用來描述脈沖的形狀、幅度和寬度等特性。在雷達和電源領域中&#xff0c;脈沖寬度…

Flink 替換 Logstash 解決日志收集丟失問題

在某客戶日志數據遷移到火山引擎使用 ELK 生態的案例中&#xff0c;由于客戶反饋之前 Logstash 經常發生數據丟失和收集性能較差的使用痛點&#xff0c;我們嘗試使用 Flink 替代了傳統的 Logstash 來作為日志數據解析、轉換以及寫入 ElasticSearch 的組件&#xff0c;得到了該客…

實現一個計算機

圖片&#xff1a; 實現代碼&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>body {padding: 20px;font-family: Arial;}.calc-wrap {width: 300px;bor…

VL06O報表添加增強字段

業務描述 用戶需要在VL06O事務代碼下進行批量交貨過賬&#xff0c;現有的篩選條件不太適用當前公司的業務&#xff0c;需要在報表中新增三個交貨單增強字段&#xff0c;方便其篩選&#xff08;選擇屏幕沒有加&#xff0c;用戶在報表里用標準按鈕功能自己篩選&#xff09; 效果…

十一 動手學深度學習v2計算機視覺 ——微調

一、網絡架構 一個神經網絡一般可以分成兩塊 特征抽取&#xff0c;將原始像素變成容易線性分割的特征。線性分類器來做分類。 二、訓練 是一個目標數據集上的正常訓練任務&#xff0c; 但使用更強的正則化 使用更小的學習率使用更少的數據迭代 源數據集遠遠復雜于目標數據集…

藍橋杯算法雙周賽心得——迷宮逃脫(dp)

大家好&#xff0c;我是晴天學長&#xff0c;dp版的來啦&#xff0c;可以是受益匪淺啊&#xff0c;需要的小伙伴可以關注支持一下哦&#xff01;后續會繼續更新的。&#x1f4aa;&#x1f4aa;&#x1f4aa; 1) .迷宮逃脫 迷官逃脫[算法賽] 問題描述 在數學王國中&#xff0c;存…

便攜式心電圖機方案_基于MT6735平臺的手持心電圖機

便攜式心電圖機具備體積小、易攜帶、兼容12導模式的特點&#xff0c;通過工頻濾波、基線濾波和肌電濾波等處理&#xff0c;能夠獲得更精準的心電圖譜。該設備可以與醫院信息系統(HIS)相連接&#xff0c;實現患者信息的共享。采集的心電數據可以通過無線方式發送到心電判讀平臺&…

企業建數倉的第一步是選擇一個好用的ETL工具

當企業決定建立數據倉庫&#xff08;Data Warehouse&#xff09;&#xff0c;第一步就是選擇一款優秀的ETL&#xff08;Extract, Transform, Load&#xff09;工具。數據倉庫是企業數據管理的核心&#xff0c;它存儲、整合并管理各種數據&#xff0c;為商業決策和數據分析提供支…