首页 > 其他分享 >存在重复元素 II(LeetCode)

存在重复元素 II(LeetCode)

时间:2024-08-22 23:24:06浏览次数:8  
标签:abs nums 重复 复杂度 元素 II num 数组 LeetCode

题目

        给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i] == nums[j] 且 abs(i - j) <= k 。如果存在,返回 true ;否则,返回 false 。

解题

"""
时间复杂度为 O(n),空间复杂度为 O(min(n, k)),其中 n 是数组的长度
"""


def containsNearbyDuplicate(nums, k):
    # 创建一个哈希表来存储元素及其对应的索引
    num_dict = {}

    # 遍历数组中的每个元素
    for i, num in enumerate(nums):
        # 如果当前元素已经存在于哈希表中,且满足 abs(i - j) <= k
        if num in num_dict and abs(i - num_dict[num]) <= k:
            return True

        # 更新哈希表,存储当前元素及其索引
        num_dict[num] = i

    # 如果没有找到满足条件的元素,返回 False
    return False


nums = [1, 2, 3, 1]
k = 3
print(containsNearbyDuplicate(nums, k))  # 输出: True

标签:abs,nums,重复,复杂度,元素,II,num,数组,LeetCode
From: https://blog.csdn.net/weixin_74254879/article/details/141440218

相关文章

  • LeetCode 2952. Minimum Number of Coins to be Added
    原题链接在这里:https://leetcode.com/problems/minimum-number-of-coins-to-be-added/description/题目:Youaregivena 0-indexed integerarray coins,representingthevaluesofthecoinsavailable,andaninteger target.Aninteger x is obtainable ifthere......
  • IIS网站图片不能加载
    去掉<addname="misson"path="*"verb="*"modules="IsapiModule"scriptProcessor="C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll"resourceType="File"requireAccess="None&......
  • 洛谷P1182 数列分段 Section II
    传送门:P1182数列分段SectionII消灭人类暴政,世界属于三体题目意思:题目说的很明白了思路:考虑部分分:20%的数据保证n<10,直接爆搜;40%的数据保证n<1000,n^2+前缀和搞定100%的数据:求每段最大和的最小值:明显的二分(n在10^5的范围也说明了这一点,因为二分查找的......
  • 76. 最小覆盖子串【 力扣(LeetCode) 】
    一、题目描述给你一个字符串s、一个字符串t。返回s中涵盖t所有字符的最小子串。如果s中不存在涵盖t所有字符的子串,则返回空字符串“”。注意:对于t中重复字符,我们寻找的子字符串中该字符数量必须不少于t中该字符数量。如果s中存在这样的子串,我们保证......
  • 48. 旋转图像【 力扣(LeetCode) 】
    一、题目描述给定一个n×n的二维矩阵matrix表示一个图像。请你将图像顺时针旋转90度。你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。二、测试用例示例1:输入:matrix=[[1,2,3],[4,5,6],[7,8,9]]输出:[[7,4......
  • 数字集成电路设计实践 IIC-Slave接口芯片的全流程设计
    数字集成电路设计实践 IIC-Slave接口芯片的全流程设计一、芯片设计方案IIC原理1.I2C协议I2C协议由Philips公司推出。1.1. 端口名称及含义标准I2C只有2根信号线。SCL:SerialCLock:串行时钟线,由主机产生并分享给从机。SDA:SerialDAta:串行数据线,连接在主从机之间。把发送......
  • day8字符串:344.反转字符串|541. 反转字符串II|卡码网:54.替换数字
    344.ReverseStringclassSolution{//extrao1spacepublicvoidreverseString(char[]s){intleft=0;intright=s.length-1;while(left<right){chartemp=s[left];s[left]=s[right];......
  • .Net8 部署到IIS 10 上需要注意的点
    现在大部分项目都上云了,而且是linux的系统,这部分我下一篇再讲,这次讲一下如何部署到iis10,首先项目点击发布-》目标框架.net8部署模式是独立,目标运行时是win-x64,你也可以选择部署模式为依赖框架,目标运行时选择可移植,但是这样的话要注意IIS的应用程序池选择启用32位应用程序,如果是......
  • el-select allow-create 后出现重复选项
    前情提要之前封装了一个显示输入建议的组件InputLoadMore,见链接:点击输入框,底部弹出下拉框显示输入建议后来需求更改,还要求:某个表单项选择值后,其他表单项的值自动填充;允许多选;去掉下拉框选项分页加载更多。因此,封装了智能填充组件SmartFill。问题复现SmartFill中输入......
  • element plus el-table 合并行或列(根据列表数据动态合并第一列重复的单元格)
    http://element-plus.org/zh-CN/component/table.html#%E5%90%88%E5%B9%B6%E8%A1%8C%E6%88%96%E5%88%97 <scriptsetup>import{onMounted,ref}from'vue'import'./index.css'constobjectSpanMethod=({row,column,rowInde......