Leetcode:219

ops/2025/1/31 8:31:06/

1,题目

2,思路

第一种就是简单的暴力比对当时过年没细想

第二种:

  • 用Map的特性key唯一,把数组的值作为Map的key值
  • 我们每加载一个元素都会去判断这个元素在Map里面存在与否
  • 如果存在进行第二个判断条件abs(i-j)<=k,条件
    • 符合直接true
    • 不符合就让在map中存在的元素被新元素覆盖即可,这样能确保后续判断有效,循环结束则false
  • 第二种无论是在时间复杂度还是空间复杂度上都要比第一种更加优解

3,代码

java">import java.util.HashMap;public class Leetcode219 {public static void main(String[] args) {System.out.println(new Solution219().containsNearbyDuplicate(new int[]{1, 2, 3, 1}, 3));}
}class Solution219 {public boolean containsNearbyDuplicate(int[] nums, int k) {//return fun1(nums, k);//方法一:暴力return fun2(nums, k);//方法二:哈希表查找}public boolean fun1(int[] nums, int k) {int temp = k + 1;for (int i = 0; i < nums.length - 1; i++) {int index = nums[i];for (int j = i + 1; j < nums.length; j++) {int end = nums[j];if (index == end && Math.abs(i - j) <= k) {return true;} else if (Math.abs(i - j) > k) {break;}}}return false;}public boolean fun2(int[] nums, int k) {HashMap<Integer, Integer> map = new HashMap<>();//建立哈希表for (int i = 0; i < nums.length; i++) {if (!map.containsKey(nums[i])) {map.put(nums[i], i);//值为key这样值就是唯一的} else {int num = map.get(nums[i]);//获取题目中的iif (Math.abs(num - i) <= k) {return true;} else {map.put(nums[i], i);//否则覆盖}}}return false;}
}


http://www.ppmy.cn/ops/154428.html

相关文章

【Linux】线程互斥与同步

&#x1f525; 个人主页&#xff1a;大耳朵土土垚 &#x1f525; 所属专栏&#xff1a;Linux系统编程 这里将会不定期更新有关Linux的内容&#xff0c;欢迎大家点赞&#xff0c;收藏&#xff0c;评论&#x1f973;&#x1f973;&#x1f389;&#x1f389;&#x1f389; 文章目…

仿 RabbitMQ 的消息队列3(实战项目)

七. 消息存储设计 上一篇博客已经将消息统计文件的读写代码实现了&#xff0c;下一步我们将实现创建队列文件和目录。 实现创建队列文件和目录 初始化 0\t0 这样的初始值. //创建队列对应的文件和目录&#xff1a;public void createQueueFile(String queueName) throws IO…

PHP 7 新特性

PHP 7 新特性 引言 PHP 作为一种广泛使用的服务器端脚本语言,自1995年诞生以来,已经经历了多个版本的迭代。PHP 7 是 PHP 的发展历程中的一个重要里程碑,它带来了许多新特性和改进,旨在提高性能、增强安全性和简化开发过程。本文将详细介绍 PHP 7 的新特性,帮助开发者更…

Solon Cloud Gateway 开发:Helloword

Solon Cloud Gateway&#xff0c;是一个可 Java 编程的分布式接口网关&#xff08;或&#xff0c;代理网关&#xff09;。 有没有注册与发布服务。都可以用。不管是 php 或者 node.js 或得 java&#xff0c;只要是 http 服务。也都可互通。 下面&#xff0c;演示给一个服务&a…

【Block总结】高效多尺度注意力EMA,超越SE、CBAM、SA、CA等注意力|即插即用

论文信息 标题: Efficient Multi-Scale Attention Module with Cross-Spatial Learning 作者: Daliang Ouyang, Su He, Guozhong Zhang, Mingzhu Luo, Huaiyong Guo, Jian Zhan, Zhijie Huang 论文链接: https://arxiv.org/pdf/2305.13563v2 GitHub链接: https://github.co…

uniapp版本升级

1.样式 登录进到首页&#xff0c;弹出更新提示框&#xff0c;且不可以关闭&#xff0c;侧边返回直接退出&#xff01; 有关代码&#xff1a; <uv-popup ref"popupUpdate" round"8" :close-on-click-overlay"false"><view style"…

Vuex中的getter和mutation有什么区别

在现代前端开发中&#xff0c;状态管理是一个不可忽视的话题&#xff0c;而Vuex作为Vue.js的官方状态管理库&#xff0c;在大型应用中扮演着至关重要的角色。当我们使用Vuex进行状态管理时&#xff0c;getter和mutation是两个重要的概念。虽然它们都是用来处理状态的&#xff0…

三天急速通关JavaWeb基础知识:Day 2 前端基础知识(计划有变,前端工程化部分暂时搁置)

三天急速通关JavaWeb基础知识&#xff1a;Day 2 前端基础知识 0 文章说明1 HTML1.1 介绍1.2 基本结构及语法1.3 常见标签2 CSS2.1 介绍2.2 引入方式2.3 选择器2.4 浮动 定位 盒子模型 3 JavaScript3.1 介绍3.2 组成3.3 基础语法 4 Ajax4.1 介绍4.2 示例 未完待续&#xff0c;前…