力扣刷題(第五十一天)

靈感來源?

- 保持更新,努力學習

- python腳本學習

存在重復元素 II

解題思路

這個問題可以通過哈希表來高效解決。具體思路如下:

  1. 使用哈希表記錄元素最后一次出現的位置:遍歷數組,用一個哈希表存儲每個元素的最后一次出現的索引。
  2. 檢查索引差:對于每個元素,如果它已經在哈希表中存在,計算當前索引與哈希表中存儲的索引的差值。如果這個差值小于等于給定的?k,則返回?True
  3. 更新哈希表:無論元素是否已經存在于哈希表中,都更新它的索引為當前索引。這樣可以確保哈希表中存儲的是元素最后一次出現的位置,從而使得后續的檢查能夠得到最小的索引差。

這種方法的時間復雜度是 O (n),其中 n 是數組的長度,因為只需要遍歷一次數組。空間復雜度是 O (min (n, k)),因為哈希表中最多存儲 k+1 個元素。

class Solution:def containsNearbyDuplicate(self, nums: List[int], k: int) -> bool:# 用于存儲元素及其最后一次出現的索引num_dict = {}for i, num in enumerate(nums):# 如果元素已經在字典中,檢查索引差if num in num_dict and i - num_dict[num] <= k:return True# 更新元素的最后一次出現的索引num_dict[num] = ireturn False

逐行解釋

class Solution:def containsNearbyDuplicate(self, nums: List[int], k: int) -> bool:# 創建一個字典,用于存儲每個元素及其最后一次出現的索引位置num_dict = {}# 遍歷數組中的每個元素及其索引for i, num in enumerate(nums):# 檢查當前元素是否已經在字典中,并且當前索引與上次出現的索引之差 <=kif num in num_dict and i - num_dict[num] <= k:return True  # 找到滿足條件的重復元素,返回True# 更新字典中該元素的索引為當前索引(無論是否已存在,確保記錄最新位置)num_dict[num] = i# 遍歷結束后仍未找到滿足條件的重復元素,返回Falsereturn False

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

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

相關文章

基于 Vue3 + Element Plus 實現的智能題目生成頁面設計思路

在本篇文章中&#xff0c;我將分享一個基于 Vue3 Element Plus 構建的「智能題目生成頁面」的實現思路與設計理念。該頁面作為在線學習平臺的一部分&#xff0c;核心功能是&#xff1a;用戶上傳學習資料&#xff0c;AI 自動為其生成定制化題目。以下將從頁面風格、功能模塊、交…

全面解析各類VPN技術:GRE、IPsec、L2TP、SSL與MPLS VPN對比

目錄 引言 VPN技術概述 GRE VPN 3.1 GRE封裝結構 3.2 GRE的應用場景 GRE over IPsec 4.1 GRE over IPsec封裝結構 4.2 為什么使用GRE over IPsec&#xff1f; IPsec VPN 5.1 IPsec傳輸模式&#xff08;Transport Mode&#xff09; 5.2 IPsec隧道模式&#xff08;Tunne…

《P1801 黑匣子》

題目描述 Black Box 是一種原始的數據庫。它可以儲存一個整數數組&#xff0c;還有一個特別的變量 i。最開始的時候 Black Box 是空的&#xff0e;而 i0。這個 Black Box 要處理一串命令。 命令只有兩種&#xff1a; ADD(x)&#xff1a;把 x 元素放進 Black Box; GET&#x…

Docker、Wsl 打包遷移環境

電腦需要開啟wsl2 可以使用wsl -v 查看當前的版本 wsl -v WSL 版本&#xff1a; 2.2.4.0 內核版本&#xff1a; 5.15.153.1-2 WSLg 版本&#xff1a; 1.0.61 MSRDC 版本&#xff1a; 1.2.5326 Direct3D 版本&#xff1a; 1.611.1-81528511 DXCore 版本&#xff1a; 10.0.2609…

【Nginx】使用 Nginx+Lua 實現基于 IP 的訪問頻率限制

使用 NginxLua 實現基于 IP 的訪問頻率限制 在高并發場景下&#xff0c;限制某個 IP 的訪問頻率是非常重要的&#xff0c;可以有效防止惡意攻擊或錯誤配置導致的服務宕機。以下是一個詳細的實現方案&#xff0c;使用 Nginx 和 Lua 腳本結合 Redis 來實現基于 IP 的訪問頻率限制…

華為OD機考-機房布局

import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的區別while (in.hasNextLine()) { // 注意 while 處理多個 caseSystem.out.println(solve(in.nextLine()));}}priv…

Server - 使用 Docker 配置 PyTorch 研發環境

歡迎關注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/148421901 免責聲明&#xff1a;本文來源于個人知識與公開資料&#xff0c;僅用于學術交流&#xff0c;歡迎討論&#xff0c;不支持轉載。 建議使…

HarmonyOS5.0——CodeGenie:鴻蒙生態的AI編程革命?

??CodeGenie&#xff1a;鴻蒙生態的AI編程革命?? 華為推出的 ??CodeGenie?? 是集成于 DevEco Studio 的 AI 輔助編程工具&#xff0c;專為 HarmonyOS 應用開發設計。它通過深度優化 ArkTS 和 C 語言的代碼生成能力&#xff0c;顯著提升開發效率&#xff0c;降低鴻蒙生…

大模型模型部署和暴露接口

創建環境 激活案件 安裝相關依賴 conda create -n fastApi python3.10 conda activate fastApi conda install -c conda-forge fastapi uvicorn transformers pytorch pip install safetensors sentencepiece protobuf 新建文件夾 mkdir App cd App touch main.py 復制代碼…

Redis初入門

Nosql&#xff1a;Not-Only SQL&#xff08;泛指非關系型數據庫&#xff09;&#xff0c;作為關系型數據庫的補充 作用&#xff1a;應對基于海量用戶和海量數據前提下的數據處理問題 redis&#xff1a;C語言開發的一個開源的高性能鍵值對數據庫 特征&#xff1a; 1、數據之…

【原神 × 二叉樹】角色天賦樹、任務分支和圣遺物強化路徑的算法秘密!

【原神 二叉樹】角色天賦樹、任務分支和圣遺物強化路徑的算法秘密! 作者:星之辰 標簽:#原神 #二叉樹 #天賦樹 #任務分支 #圣遺物強化 #算法科普 發布時間:2025年6月 總字數:6000+ 一、引子:提瓦特大陸的“樹型奧秘” 你是否曾留意過《原神》角色面板的天賦樹? 升級技能…

C++信息學競賽中常用函數的一般用法

在C 信息學競賽中&#xff0c;有許多常用函數能大幅提升編程效率。下面為你介紹一些常見函數及其一般用法&#xff1a; 一、比較函數 1、max()//求出a&#xff0c;b的較大值 int a10,b5,c;cmax(a,b);//得出的結果就是c等于10. 2、min()//求出a&#xff0c;b的較小值 int a1…

Linux【3】-----系統框架概述

系統架構 文件系統 linux一定需要掛載操作系統 一切皆文件 三個文件 引導文件 uboot.bin內核鏡像 zImage文件系統鏡像 system.img 設備樹文件&#xff08;屬于內核&#xff09; 應用程序編程 arm中通過軟中斷實現 各程序的構成 文件I/O 5種I/O模型 阻塞非阻塞信號多…

Tensorrt python api 10.11.0筆記

關于Tensorrt的python api文檔閱讀翻譯加總結 文檔源地址 Overview Getting started with TensorRT Installation(安裝) 安裝可參考:官方地址 Samples 關于樣例的內容可參考:樣例地址 Operator Documentation 有關更多信息&#xff08;包括示例&#xff09;&#xff0…

電鍍機的陽極是什么材質?

知識星球&#xff08;星球名&#xff1a;芯片制造與封測技術社區&#xff0c;點擊加入&#xff09;里的學員問&#xff1a;電鍍的陽極有什么講究&#xff1f;什么是可溶性陽極和非可溶性陽極&#xff1f; 什么是可溶性陽極與非可溶性陽極&#xff1f; 可溶性陽極 陽極本身就是…

前段三劍客之JavaScript-02

目錄 簡介 核心 函數 字符串對象 事件 運算符和控制語句 DOM 正則表達式 BOM JSON 簡介 JavaScript由JavaScript語法&#xff0c;DOM和BOM組成 JS中提供了一些輸入輸出語句&#xff1a; alert(); //瀏覽器彈出警示框 console.log(); //控制臺打印 prompt(); //瀏覽器…

Qiskit:量子計算模擬器

參考文獻&#xff1a; IBM Qiskit 官網Qiskit DocumentationQiskit Benchpress packageQiskit Algorithms package量子計算&#xff1a;基本概念常見的幾類矩陣&#xff08;正交矩陣、酉矩陣、正規矩陣等&#xff09;Qiskit 安裝指南-博客園使用Python實現量子電路模擬&#x…

【Elasticsearch】Elasticsearch 核心技術(二):映射

Elasticsearch 核心技術&#xff08;二&#xff09;&#xff1a;映射 1.什么是映射&#xff08;Mapping&#xff09;1.1 元字段&#xff08;Meta-Fields&#xff09;1.2 數據類型 vs 映射類型1.2.1 數據類型1.2.2 映射類型 2.實際運用案例案例 1&#xff1a;電商產品索引映射案…

serv00 ssh登錄保活腳本-郵件通知版

適用于自己有服務器情況&#xff0c;ssh定時登錄到serv00&#xff0c;并在登錄成功后發送郵件通知 msmtp 和 mutt安裝 需要安裝msmtp 和 mutt這兩個郵件客戶端并配置&#xff0c;參考如下文章前幾步是講配置這倆客戶端的&#xff0c;很簡單&#xff0c;不再贅述 用Shell腳本實…

前端 Electron 桌面應用學習筆記

前端 Electron 桌面應用學習筆記 介紹Electron是什么?為什么選擇Electron?創建你的第一個桌面應用程序啟動項目運行結果截圖打開調試面板方法生命周期函數常用配置配置窗口標題配置小圖標隱藏菜單欄關閉調試面板是否可以使用Node.js隱藏 Electron 標題、小圖標和菜單欄獲取窗…