面試經典150題——滑動窗口

文章目錄

  • 1、長度最小的子數組
    • 1.1 題目鏈接
    • 1.2 題目描述
    • 1.3 解題代碼
    • 1.4 解題思路
  • 2、無重復字符的最長子串
    • 2.1 題目鏈接
    • 2.2 題目描述
    • 2.3 解題代碼
    • 2.4 解題思路
  • 3、串聯所有單詞的子串
    • 3.1 題目鏈接
    • 3.2 題目描述
    • 3.3 解題代碼
    • 3.4 解題思路
  • 4、最小覆蓋子串
    • 4.1 題目鏈接
    • 4.2 題目描述
    • 4.3 解題代碼
    • 4.4 解題思路


1、長度最小的子數組

1.1 題目鏈接

點擊跳轉到題目位置

1.2 題目描述

給定一個含有 n 個正整數的數組和一個正整數 target 。

找出該數組中滿足其總和大于等于 target 的長度最小的
子數組
[numsl, numsl+1, …, numsr-1, numsr] ,并返回其長度。如果不存在符合條件的子數組,返回 0 。
提示:

1 <= target <= 109
1 <= nums.length <= 105
1 <= nums[i] <= 104

1.3 解題代碼

class Solution {public int minSubArrayLen(int target, int[] nums) {int left = 0;int right = -1;int n = nums.length;int sum = 0;int min_len = n + 1;while(right < n - 1){++right;sum += nums[right];while(sum >= target){min_len = Math.min(min_len, right - left + 1);sum -= nums[left];left++;} }if(min_len == n + 1){return 0;}return min_len;}
}

1.4 解題思路

  1. 使用滑動窗口解決問題。
  2. 滑動窗口向右移動,右指針移動,總和增加的,一旦總和大于等于目標值,左指針開始移動,每次移動前都更新一下長度,然后更新sum值(減少),直到sun值小于target后重新開始移動右指針。

2、無重復字符的最長子串

2.1 題目鏈接

點擊跳轉到題目位置

2.2 題目描述

給定一個字符串 s ,請你找出其中不含有重復字符的 最長子串 的長度。

提示:

  • 0 <= s.length <= 5 * 104
  • s 由英文字母、數字、符號和空格組成

2.3 解題代碼

class Solution {public int lengthOfLongestSubstring(String s) {int left = 0;int right = -1;int n = s.length();int len = 0;Set<Character> hash = new HashSet<Character>();while(right < n - 1){++right;char ch = s.charAt(right);if(!hash.contains(ch)){hash.add(ch);} else{while(hash.contains(ch)){hash.remove(s.charAt(left));++left;}hash.add(ch);}len = Math.max(len, right - left + 1);}return len;}
}

2.4 解題思路

  1. 滑動窗口解決該問題。
  2. 右指針右移,如果當前所指的字符不在集合里面,直接把該字符添加進字符中;如果當前所指的字符在集合里面,去除左指針所指的字符,并右移動,直到右指針所指的字符在集合中查詢不到,最后再將右指針所指的字符添加進去。
  3. 再上述操作執行完畢后更新一下最長的長度。

3、串聯所有單詞的子串

3.1 題目鏈接

點擊跳轉到題目位置

3.2 題目描述

給定一個字符串 s 和一個字符串數組 words。 words 中所有字符串 長度相同

  • s 中的 串聯子串 是指一個包含 words 中所有字符串以任意順序排列連接起來的子串。

  • 例如,如果 words = [“ab”,“cd”,“ef”], 那么 “abcdef”, “abefcd”,“cdabef”, “cdefab”,“efabcd”, 和 - “efcdab” 都是串聯子串。 “acdbef” 不是串聯子串,因為他不是任何 words 排列的連接。

返回所有串聯子串在 s 中的開始索引。你可以以 任意順序 返回答案。

提示:

  • 1 <= s.length <= 104
  • 1 <= words.length <= 5000
  • 1 <= words[i].length <= 30
  • words[i] 和 s 由小寫英文字母組成

3.3 解題代碼

3.4 解題思路

4、最小覆蓋子串

4.1 題目鏈接

點擊跳轉到題目位置

4.2 題目描述

給你一個字符串 s 、一個字符串 t 。返回 s 中涵蓋 t 所有字符的最小子串。如果 s 中不存在涵蓋 t 所有字符的子串,則返回空字符串 “” 。

4.3 解題代碼

在這里插入代碼片

4.4 解題思路

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

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

相關文章

12.29~12.31[net][review]need to recite[part 2]

網絡層 IP 首部的前一部分是固定長度&#xff0c;共 20 字節&#xff0c;是所有 IP 數據報必須具有的 路由器 路由選擇協議屬于網絡層控制層面的內容 l 路由器 的 主要工作&#xff1a; 轉發分組。 l 路由 信息協議 RIP (Routing Information Protocol ) 是 一種 分布式的…

免費下載 | 2024網絡安全產業發展核心洞察與趨勢預測

《2024網絡安全產業發展核心洞察與趨勢預測》報告的核心內容概要&#xff1a; 網絡安全產業概況&#xff1a; 2023年中國網絡安全產業市場規模約992億元&#xff0c;同比增長7%。 預計2024年市場規模將增長至1091億元&#xff0c;2025年達到1244億元。 網絡安全企業數量超過4…

Django項目部署到服務器

文章目錄 django項目部署到服務器在服務器上安裝Django和依賴&#xff1a;項目代碼上傳配置數據庫收集靜態文件配置Web服務器配置Gunicorn&#xff08;WSGI服務器&#xff09;啟動/停止/重載systemd服務。 django項目部署到服務器 在服務器上安裝Django和依賴&#xff1a; su…

記憶旅游系統|Java|SSM|VUE| 前后端分離

【技術棧】 1??&#xff1a;架構: B/S、MVC 2??&#xff1a;系統環境&#xff1a;Windowsh/Mac 3??&#xff1a;開發環境&#xff1a;IDEA、JDK1.8、Maven、Mysql5.7 4??&#xff1a;技術棧&#xff1a;Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html 5??數據庫可…

微信小程序:定義頁面標題,動態設置頁面標題,json

1、常規設置頁面標題 正常微信小程序中&#xff0c;設置頁面標題再json頁面中進行設置&#xff0c;例如 {"usingComponents": {},"navigationBarTitleText": "標題","navigationBarBackgroundColor": "#78b7f7","navi…

基于通用優化軟件GAMS的數學建模和優化分析;GAMS安裝和介紹、GAMS程序編寫、GAMS程序調試、實際應用算例演示與經驗分享

GAMS&#xff08;General Algebraic Modeling System&#xff09;是一款高級建模系統&#xff0c;主要用于解決線性規劃、非線性規劃、動態規劃、混合整數規劃等優化問題。它以其簡單清晰的用戶接口和強健穩定的數值分析能力而著稱&#xff0c;適用于大型、復雜的優化問題。GAM…

理解生成協同促進?華為諾亞提出ILLUME,15M數據實現多模態理解生成一體化

多模態理解與生成一體化模型&#xff0c;致力于將視覺理解與生成能力融入同一框架&#xff0c;不僅推動了任務協同與泛化能力的突破&#xff0c;更重要的是&#xff0c;它代表著對類人智能&#xff08;AGI&#xff09;的一種深層探索。通過在單一模型中統一理解與生成&#xff…

學習vue3的筆記

一、vue和react的對比 1、基礎介紹 vue&#xff1a;https://cn.vuejs.org/ vue3是2020年創建的 react&#xff1a;https://react.dev/ react是一個2013年開源的JavaScript庫&#xff0c;嚴格意義上來說不是一個框架 2、diff算法 兩個框架采用的都是同級對比策略 兩節點對…

SQLiteDataBase數據庫

XML界面設計 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.com/tools"android:layout_width"match_paren…

k8s部署nginx+sshd實現文件上傳下載

要通過 nginx 和 sshd 實現文件的上傳和下載&#xff0c;通常的做法是結合 SSH 協議和 HTTP 協議&#xff0c;使用 nginx 提供 Web 服務器功能&#xff0c;同時使用 sshd&#xff08;即 SSH 服務&#xff09;來處理通過 SSH 協議進行的文件傳輸。 SSH 實現文件的上傳和下載&…

Golang 中 Goroutine 的調度

Golang 中 Goroutine 的調度 Golang 中的 Goroutine 是一種輕量級的線程&#xff0c;由 Go 運行時&#xff08;runtime&#xff09;自動管理。Goroutine 的調度基于 M:N 模型&#xff0c;即多個 Goroutine 可以映射到多個操作系統線程上執行。以下是詳細的調度過程和策略&…

clickhouse-backup配置及使用(Linux)

一、下載地址 Releases Altinity/clickhouse-backup GitHub 二、上傳到服務器解壓安裝 自行上傳至服務器&#xff0c;解壓命令&#xff1a; tar xvf clickhouse-backup-linux-amd64.tar.gz 三、創建軟連接 sudo ln -sv build/linux/amd64/clickhouse-backup /usr/local/bin/…

如何在群暉NAS上安裝并配置MySQL與phpMyAdmin遠程管理數據庫

文章目錄 前言1. 安裝MySQL2. 安裝phpMyAdmin3. 修改User表4. 本地測試連接MySQL5. 安裝cpolar內網穿透6. 配置MySQL公網訪問地址7. 配置MySQL固定公網地址8. 配置phpMyAdmin公網地址9. 配置phpmyadmin固定公網地址 前言 大家是不是經常遇到需要隨時隨地訪問自己數據的情況&am…

《向量數據庫指南》——Milvus Cloud 2.5:Sparse-BM25引領全文檢索新時代

Milvus Cloud BM25:重塑全文檢索的未來 在最新的Milvus Cloud 2.5版本中,我們自豪地引入了“全新”的全文檢索能力,這一創新不僅鞏固了Milvus Cloud在向量數據庫領域的領先地位,更為用戶提供了前所未有的靈活性和效率。作為大禹智庫的向量數據庫高級研究員,以及《向量數據…

SQL 總結

SQL 總結 引言 SQL(Structured Query Language,結構化查詢語言)是一種用于管理關系數據庫管理系統(RDBMS)的標準編程語言。自1974年首次提出以來,SQL已成為數據庫領域中不可或缺的一部分。它允許用戶執行各種操作,如查詢、更新、插入和刪除數據庫中的數據。本文旨在提…

ESP32-CAM開發板入門 (下載示例程序)

ESP32-CAM開發板例程使用 1、準備工作1.1、硬件準備1.2、軟件準備 2、選擇示例程序并錄入第一步 1、準備工作 1.1、硬件準備 1.2、軟件準備 Arduino IDE &#xff1a; 編程與寫入&#xff08;下載地址 https://www.arduino.cc/en/software&#xff09; 安裝好后將軟件設置到…

企業賦能是什么意思-國際數字影像產業園解讀

在當今競爭激烈的商業環境中&#xff0c;企業賦能已成為推動企業發展、提升競爭力的關鍵策略。國際數字影像產業園作為數字影像產業的重要集聚地&#xff0c;通過一系列創新舉措為入駐園區的我眾多企業賦能。那么&#xff0c;企業賦能究竟是什么意思呢&#xff1f; 企業賦能是…

混合并行訓練框架性能對比

混合并行訓練框架性能對比 1. 框架類型 DeepSpeed、Megatron - LM、Colossal - AI、SageMaker、Merak、FasterMoE、Tutel、Whale、Alpa、DAPPLE、Mesh - TensorFlow 2. 可用并行性(Available parallelisms) DNN framework(深度神經網絡框架)DP(數據并行,Data Parallelis…

客戶案例:基于慧集通集成平臺,打通屠宰管理系統與用友U8C 系統的全攻略

一、引言 本原型客戶成立于2014年&#xff0c;是一家集飼草種植、肉牛養殖、精深加工、冷鏈物流、餐飲服務于一體的大型農牧綜合體。公司下設三個子公司分別涵蓋農業、畜牧業、肉制品加工業與餐飲物流服務業。公司嚴格按照一二三產業融合發展要求&#xff0c;以肉牛產業化為支…

HTML5滑塊(Slider)

HTML5 的滑塊&#xff08;Slider&#xff09;控件允許用戶通過拖動滑塊來選擇數值。以下是如何實現一個簡單的滑塊組件的詳細說明。 HTML5 滑塊組件 1. 基本結構 使用 <input type"range"> 元素可以創建一個滑塊。下面是基本實現的代碼示例&#xff1a; <…