当前位置: 首页 > news >正文

LeetCode 217.存在重复元素

目录

题目:

题目描述:

题目链接:

思路:

思路一详解(排序):

思路二详解(Set):

思路三详解(Map):

代码:

Java思路一(排序)代码:

Java思路二(Set)代码:

Java思路三(Map)代码:


题目:

题目描述:

题目链接:

217. 存在重复元素 - 力扣(LeetCode)

思路:

思路一详解(排序):

先对整数数组进行排序,遍历排序后数组的每一位,再判断该位是否等于后一位。只要找到某一位等于后一位就说明任一值在数组至少出现两次,无需后续判断直接return true;即可。如果整个数组元素全部遍历完都不存在某一位等于后一位,返回false(索引结束条件为i<nums.length-1,防止数组越界)

思路二详解(Set):

遍历整个数组把每个数字放到Set中,Set具有去重的特性。每次放入数字时调用contains判断Set中是否存在该数字,如果已经存在就说明任一值在数组中出现至少两次,直接返回true。如果成功把数组的全部数组都放入Set中,就说明数组中不存在重复的元素,返回false

思路三详解(Map):

这题完全没必要用到Map,效率非常低,但是我还是提出这个思路也相当于是引入后续题目的思路,同时自己作为Java小白熟悉一下语法

Map里面存的是键值对,这题键存的是数组中的元素值,值存的是数组中这个元素出现的次数。遍历整个数组把每个数字存入键中,调用containsKey判断Map中的键是否存在这个数字,如果存在就调用get获取到这个键对应的值(即出现次数)+1再把调用put把键值对再存回Map中。如果不存在,就说明这个数字第一次出现,那么把键值对的值设为1再存回Map中。

最后利用键值对的方式遍历Map集合,用count记录每个键值对的值,判断count是否>=2,如果是则return true;如果不是则return false;

代码:

Java思路一(排序)代码:

class Solution {public boolean containsDuplicate(int[] nums) {Arrays.sort(nums);for(int i=0;i<nums.length-1;i++){if(nums[i]==nums[i+1]){return true;}}return false;}
}

Java思路二(Set)代码:

class Solution {public boolean containsDuplicate(int[] nums) {Set<Integer> set = new HashSet<>();for(int i=0;i<nums.length;i++){if(set.contains(nums[i])){return true;}set.add(nums[i]);}return false;}
}

Java思路三(Map)代码:

class Solution {public boolean containsDuplicate(int[] nums) {HashMap<Integer,Integer> hm = new HashMap<>();for(int i=0;i<nums.length;i++){if(hm.containsKey(nums[i])){int count=hm.get(nums[i]);count++;hm.put(nums[i],count);}else{hm.put(nums[i],1);}}Set<Map.Entry<Integer,Integer>> entries = hm.entrySet();for (Map.Entry<Integer, Integer> entry : entries) {int count = entry.getValue();if (count >= 2) {return true;}}return false;}
}

相关文章:

LeetCode 217.存在重复元素

目录 题目&#xff1a; 题目描述&#xff1a; 题目链接&#xff1a; 思路&#xff1a; 思路一详解&#xff08;排序&#xff09;&#xff1a; 思路二详解&#xff08;Set&#xff09;&#xff1a; 思路三详解&#xff08;Map&#xff09;&#xff1a; 代码&#xff1a; …...

Flask 与 Django 服务器部署

一、引言 在 Web 开发领域&#xff0c;Flask 和 Django 是 Python 生态中最受欢迎的两个 Web 框架。Flask 以其轻量级和灵活性著称&#xff0c;适合快速开发小型应用和 API&#xff1b;而 Django 则提供了全面的功能套件&#xff0c;包括 ORM、管理界面和认证系统&#xff0c;…...

Python:操作Excel按行写入

Python按行写入Excel数据,5种实用方法大揭秘! 在日常的数据处理和分析工作中,我们经常需要将数据写入到Excel文件中。Python作为一门强大的编程语言,提供了多种库和方法来实现将数据按行写入Excel文件的功能。本文将详细介绍5种常见的Python按行写入Excel数据的方法,并附上…...

架构演变 -单体到云原生

软件架构的演变是随着技术发展、业务需求和硬件条件的变化而不断迭代的过程。以下是从单体架构到现代云原生架构的典型演变路径及关键阶段特点&#xff1a; 一、单体架构&#xff08;Monolithic Architecture&#xff09; 时间阶段&#xff1a;2000 年代前 特点&#xff1a; …...

VSCode 安装教程

访问官网 Visual Studio Code 官网 打开下载的exe文件 选一个安装位置 创建桌面快捷方式 (D) 在桌面生成 VSCode 的快捷图标&#xff0c;方便快速启动程序。 将 “通过 Code 打开” 操作添加到 Windows 资源管理器文件上下文菜单 右键点击文件时&#xff0c;菜单中会新增 “通…...

开源表单设计器FcDesigner配置多语言教程

开源低代码表单设计器FcDesigner中提供了强大的多语言支持功能&#xff0c;允许开发者在表单中实现一键式语言切换。在现代业务应用中&#xff0c;多语言支持是一项基本需求&#xff0c;尤其在国际化产品中。 源码地址: Github | Gitee | 文档 | 在线演示 设计器中配置多语言…...

ONIE安装NOS操作说明

ONIE 安装 NOS 操作说明 1. ONIE 简介 ONIE&#xff08;Open Network Install Environment&#xff09;是开放网络设备的出厂预装环境&#xff0c;类似于服务器的PXE/BIOS&#xff0c;主要用于自动或手动安装网络操作系统&#xff08;NOS&#xff0c;如SONiC、Cumulus、FBOSS等…...

fastadmin 数据导出,设置excel行高和限制图片大小

fastadmin默认导出图片全部都再一块&#xff0c;而且不在单元格里 话不多说&#xff0c;上代码 修改文件的路径&#xff1a; /public/assets/js/require-table.js exportOptions: {fileName: export_ Moment().format("YYYY-MM-DD"),preventInjection: false,mso…...

仿腾讯会议——音频服务器部分

1、中介者定义处理音频帧函数 2、 中介者实现处理音频帧函数 3、绑定函数映射 4、服务器定义音频处理函数 5、 服务器实现音频处理函数...

国产化替代对金融行业有哪些影响?如何应对?

在全球产业链重构与科技自主创新的时代背景下&#xff0c;国产化替代已从技术领域的局部探索&#xff0c;升级为金融行业应对复杂外部环境、夯实发展根基的战略选择。作为国家核心竞争力的重要组成部分&#xff0c;金融行业长期依赖国外技术设备的传统模式正面临安全性、可控性…...

包装类(1)

1.包装类的分类 1.针对八种基本数据类型相应的引用类型--包装类 2.有了类的特点,就可以调用类中的方法. 基本数据类型. 包装类 例: 手动装箱 int->Integer 手动执箱 Integer->int 注&#xff1a;jdk5后就可以自动装箱和拆箱 2.包装类和基本数据的转换 (1)jdk5前的…...

java中如何优雅处理多租户系统的查询?

多租户系统通常是指一个应用服务多个客户&#xff08;租户&#xff09;&#xff0c;每个租户的数据需要隔离&#xff0c;确保数据安全和隐私。处理这样的系统需要考虑数据隔离、查询效率、代码的可维护性等方面。 首先&#xff0c;我应该明确多租户的实现方式。常见的多租户数据…...

Ubuntu服务器部署多语言项目(Node.js/Python)方式实践

Ubuntu服务器部署多语言项目&#xff08;Node.js/Python&#xff09;方式实践 服务器脚本运行方式命令行直接执行nohup后台执行进程 Screen概述安装基本操作命令启动 Screen退出当前会话&#xff08;不终止进程&#xff09;查看所有会话重连会话关闭会话 常用快捷键典型使用场景…...

【MySQL】基础操作

MySQL(二)基础操作 一、数据库操作 1.创建库 2.查看库 3.选中库 4.删除库 二、表操作 1.创建表 1.1[comment 注释]&#xff1a; 1.2,...&#xff1a; 2.查看表 2.1查看所有表 2.2查看表结构 3.删除表 三、记录操作 1.插入记录 1.1全列插入 1.2指定列插入 1.3…...

在 Java MyBatis 中遇到 “操作数类型冲突: varbinary 与 float 不兼容” 的解决方法

在 MyBatis 中遇到 “操作数类型冲突: varbinary 与 float 不兼容” 错误&#xff0c;通常是因为当字段值为 null 时&#xff0c;MyBatis 无法正确推断其 JDBC 类型&#xff0c;导致向数据库传递 null 值时类型不匹配。以下是原因分析和解决方案&#xff1a; 问题原因 未指定 j…...

课题推荐——扩展卡尔曼滤波(EKF)估计pmsm的位置误差

扩展卡尔曼滤波&#xff08;EKF&#xff09;是一种常用于非线性系统状态估计的方法&#xff0c;特别适用于永磁同步电机&#xff08;PMSM&#xff09;的位置和速度估计。EKF可以实时估计电机的转子位置误差&#xff08;与实际转子位置的偏差&#xff09;&#xff0c;从而提高控…...

elasticsearch之记录es7.17升级8.17 springboot2.7.0 程序改造坑

es7.17升级8.x问题目录 一、硬件安装1-1. centos7 服务器上&#xff0c;删除elasticsearch7.17&#xff0c;安装es8.17 二、 程序改造2-1. Java API Client 8.17.52-2. 依赖引入2-3. 配置文件2-4. Java 配置类 三、根据 Elasticsearch 集群信息&#xff08;版本 8.17.2&#xf…...

SpringBoot+ELK 搭建日志监控平台

ELK 简介 ELK&#xff08;Elasticsearch, Logstash, Kibana&#xff09;是一个目前主流的开源日志监控平台。由三个主要组件组成的&#xff1a; Elasticsearch&#xff1a; 是一个开源的分布式搜索和分析引擎&#xff0c;可以用于全文检索、结构化检索和分析&#xff0c;它构建…...

家庭数字生态构建实战:基于飞牛fnOS的智能家居数据中台搭建全流程解析

文章目录 前言1. VMware安装飞牛云&#xff08;fnOS&#xff09;1.1 打开VMware创建虚拟机1.3 初始化系统 2. 安装Cpolar工具3. 配置远程访问地址4. 远程访问飞牛云NAS5. 固定远程访问地址 前言 在数字生活时代&#xff0c;数据管理正成为每个家庭的刚需。今天要向大家重点推荐…...

博客系统功能测试

博客系统网址&#xff1a;http://8.137.19.140:9090/blog_list.html 主要测试内容 功能测试、界面测试、性能测试、易用性测试、安全测试、兼容性测试、弱网测试、安装卸载测试、压力测试… 测试方法及目的 利用selenium和python编写测试脚本&#xff0c;对博客系统进行的相关…...

抽奖相关功能测试思路

1. 抽奖系统功能测试用例设计&#xff08;登录 每日3次 中奖40% 道具兑换码&#xff09; ✅ 功能点分析 必须登录后才能抽奖每天最多抽奖3次抽奖有 40% 概率中奖中奖返回兑换码 ✅ 测试用例设计 编号 用例描述 前置条件 操作 预期结果 TC01 未登录时抽奖 未登录 …...

paddle ocr本地化部署进行文字识别

一、Paddle 简介 1. 基本概念 Paddle&#xff08;全称 PaddlePaddle&#xff0c;飞桨&#xff09;是百度开发的 开源深度学习平台&#xff0c;也是中国首个自主研发、功能丰富、技术领先的工业级深度学习平台。它覆盖了深度学习从数据准备、模型训练、模型部署到预测的全流程…...

在CentOS系统上部署GitLabRunner并配置CICD自动项目集成!

在CentOS系统上部署GitLabRunner并配置CICD自动项目集成 在CentOS系统上部署GitLab Runner并配置CI/CD自动项目集成GitLab CI/CD是一个强大的持续集成和持续部署工具&#xff0c;能够显著提高开发团队的效率。 本文将详细介绍如何在CentOS系统上部署GitLab Runner&#xff0c…...

python学习day2(未写完,明天继续补充)

今天主要学习了变量的数据类型&#xff0c;以及如何使用格式化符号进行输出。 一、认识数据类型 在python里为了应对不同的业务需求&#xff0c;也把数据分为不同的类型。 代码如下&#xff1a; """ 1、按类型将不同的变量存储在不同的类型数据 2、验证这些…...

深度强化学习框架DI-engine

深度强化学习框架DI-engine 一、DI-engine概述&#xff1a;决策智能的通用引擎 DI-engine是由OpenDILab开源的决策智能引擎&#xff0c;基于PyTorch和JAX构建&#xff0c;旨在为强化学习&#xff08;RL&#xff09;、模仿学习&#xff08;IL&#xff09;、离线学习等场景提供…...

gitlab迁移

需求&#xff1a;需要将A服务器上的 gitlab 迁移到B服务器上&#xff0c;均使用docker 部署 一、备份数据 进入到A服务器的 gitlab 的容器中&#xff0c;运行gitlab-rake gitlab:backup:create 该命令会在 /var/opt/gitlab/backups/ 目录下创建一个xxx_gitlab_backup.tar 压缩…...

UEFI Spec 学习笔记---33 - Human Interface Infrastructure Overview---33.2.6 Strings

33.2.6 Strings UEFI 环境中的 string 是使用 UCS-2 格式定义&#xff0c;每个字符由 16bit 数据表示。对于用户界面&#xff0c;strings 也是一种可以安装到 HIIdatabase 的一种数据。 为了本土化&#xff0c;每个 string 通过一个唯一标识符来识别&#xff0c;而每一个标识…...

如何确保低空经济中的数据安全?

低空经济涉及大量敏感数据&#xff0c;如无人机的飞行轨迹、拍摄的地理图像和视频等。为确保这些数据的安全&#xff0c;可从以下几方面着手&#xff1a; 加强数据加密 传输加密 &#xff1a;采用 SSL/TLS 等加密协议&#xff0c;对数据在传输过程中进行加密&#xff0c;防止…...

在linux平台下利用mingw64编译windows程序

背景 笔者平时都是基于linux平台开发C代码&#xff0c;已经熟悉使用CMake这一套工具上一次开发windows应用程序还要追溯到10多年前&#xff0c;彼时还是使用微软的visual studio这个IDE&#xff0c;这个IDE确实也很强大&#xff0c;但也确实很笨重&#xff0c;当时用起来也很不…...

虚幻引擎5-Unreal Engine笔记之什么时候新建GameMode,什么时候新建关卡?

虚幻引擎5-Unreal Engine笔记之什么时候新建GameMode,什么时候新建关卡&#xff1f; code review! 参考笔记&#xff1a; 1.虚幻引擎5-Unreal Engine笔记之GameMode、关卡&#xff08;Level&#xff09; 和 关卡蓝图&#xff08;Level Blueprint&#xff09;的关系 2.虚幻引擎…...

[IMX] 04.定时器 - Timer

目录 1.周期中断定时器 - EPIT 1.1.工作模式 1.2.配置寄存器 - EPIT_CR 1.3.状态寄存器 - EPIT_SR 1.4.加载寄存器 - EPIT_LR 1.5.比较寄存器 - EPIT_CMPR 1.6.计数寄存器 - EPIT_CNR 2.通用定时器 - GPT 2.1. 时钟源 2.2.模块结构 2.3.工作模式 2.4.配置寄存器 - …...

前端 vue + element-ui 框架从 0 - 1 搭建

1. 安装node 地址&#xff1a; Node.js — 在任何地方运行 JavaScript 2. 安装 vue 2.1 执行安装命令 npm uninstall -g vue-cli npm install -g vue/cli 安装最新的vue3版本 2.2 使用vue 脚手架 搭建项目 vue create project_name 2.2.1 注意 项目名称不能包…...

【IDEA】删除/替换文件中所有包含某个字符串的行

目录 前言 正则表达式 示例 使用方法 前言 在日常开发中&#xff0c;频繁地删除无用代码或清理空行是不可避免的操作。许多开发者希望找到一种高效的方式&#xff0c;避免手动选中代码再删除的繁琐过程。 使用正则表达式是处理字符串的一个非常有效的方法。 正则表达式 …...

算法刷题(Java与Python)2.数组、列表

目录 Java的数组 数组介绍 注意事项 Python的列表 列表介绍 Python 的列表和 Java 的 ArrayList 一样吗&#xff1f; 例题1 代码分析 Java代码 Python代码 对比代码 例题2 代码分析 Java代码 Python代码 对比代码 例题三 Java代码 Python代码 代码对比 Jav…...

uniapp打包H5,输入网址空白情况

由于客户预算有限&#xff0c;最近写了两个uniapp打包成H5的案例&#xff0c;总结下面注意事项 1. 发行–网站-PCWeb或手机H5按钮&#xff0c;输入名称&#xff0c;网址 点击【发行】&#xff0c;生成文件 把这个给后端&#xff0c;就可以了 为什么空白呢 最重要一点&#xf…...

JavaScript 中使用 Elasticsearch 的正确方式,第一部分

作者&#xff1a;来自 Elastic Jeffrey Rengifo 讲解如何用 JavaScript 创建一个可用于生产环境的 Elasticsearch 后端。 想获得 Elastic 认证&#xff1f;看看下一期 Elasticsearch 工程师培训什么时候开始吧&#xff01; Elasticsearch 拥有大量新功能&#xff0c;能帮助你…...

每日一道leetcode(增加版)

901. 股票价格跨度 - 力扣&#xff08;LeetCode&#xff09; 题目 设计一个算法收集某些股票的每日报价&#xff0c;并返回该股票当日价格的 跨度 。 当日股票价格的 跨度 被定义为股票价格小于或等于今天价格的最大连续日数&#xff08;从今天开始往回数&#xff0c;包括今…...

排序复习/下(C语言版)

目录 1.快速排序&#xff08;hoare法&#xff09; 单趟&#xff1a; 整体&#xff1a; 代码优化&#xff1a; ​编辑三数取中代码&#xff1a; 小区间优化代码&#xff1a; hoare法疑问解答&#xff1a; 2.快速排序&#xff08;挖坑法&#xff09; 3.快速排序&#x…...

Vue百日学习计划Day33-35天详细计划-Gemini版

总目标: 在 Day 33-35 理解 Vue 组件从创建到销毁的完整生命周期&#xff0c;熟练掌握 Composition API 中主要的生命周期钩子&#xff0c;并知道在不同阶段执行哪些操作。 所需资源: Vue 3 官方文档 (生命周期钩子): https://cn.vuejs.org/guide/essentials/lifecycle.html你…...

Apidog MCP服务器,连接API规范和AI编码助手的桥梁

#作者&#xff1a;曹付江 文章目录 1.了解 MCP2.什么是 Apidog MCP 服务器&#xff1f;3.Apidog MCP 服务器如何工作4.利用人工智能改变开发工作流程5.设置 Apidog MCP 服务器&#xff1a; 分步指南5.高级功能和提示5.1 使用 OpenAPI 规范5.2.多个项目配置5.3.安全最佳实践5.4…...

统计客户端使用情况,使用es存储数据,实现去重以及计数

这篇文件的重点在tshark、filebeat、和logstash。 需求&#xff1a;统计客户使用的客户端版本 实现工具&#xff1a;tshark 1.10.14&#xff0c;filebeat 8.17.0&#xff0c;logstash 8.17.0&#xff0c;elasticsearch 8.17.0&#xff0c;kibana 8.17.0 总体设计&#xff1a…...

Git基础面试题

git的rm命令与系统的rm命令有什么区别 git rm 和系统的 rm (在 Windows 上是 del) 命令都用于删除文件&#xff0c;但它们在 Git 仓库的上下文中作用有所不同&#xff1a; 系统 rm (或 del) 命令&#xff1a; 作用&#xff1a; 直接从文件系统中删除文件。Git 的感知&#xff…...

conda 的常用命令

好的&#xff0c;下面为你介绍conda的常用命令&#xff1a; 环境管理 # 创建新环境 conda create -n env_name python3.8# 激活环境 conda activate env_name# 查看所有环境 conda env list# 复制环境 conda create -n new_env --clone old_env# 删除环境 conda remove -n en…...

PLC双人舞:profinet转ethernet ip网关奏响施耐德与AB的协奏曲

PLC双人舞&#xff1a;ethernet ip转profinet网关奏响施耐德与AB的协奏曲 案例分析&#xff1a;施耐德PLC与AB PLC的互联互通 在现代工业自动化中&#xff0c;设备之间的互联互通至关重要。本案例旨在展示如何通过北京倍讯科技的EtherNet/IP转Modbus网关&#xff0c;将施耐德P…...

百度OCR:证件识别

目录 一、编写目的 二、准备工作 2.1 OCR密钥 三、代码实现 3.1 配置文件 3.2 请求接收封装 3.3 请求响应封装 3.4 服务类参数初始化 3.5 服务类实现 3.6 解析结果 3.7 定义Web接口 四 测试效果 五、总结 欢迎来到盹猫&#x1f431;的博客 本篇文章主要介绍了 [百…...

纯前端实现图文识别 OCR

Tesseract.js Tesseract.js 是一个基于 Google Tesseract OCR 引擎的 JavaScript 库&#xff0c;利用 WebAssembly 技术将的 OCR 引擎带到了浏览器中。它完全运行在客户端&#xff0c;无需依赖服务器&#xff0c;适合处理中小型图片的文字识别。 基本使用 以下示例展示了如何…...

2025.05.01【Barplot】柱状图的多样性绘制

Custom color A few examples showing how to custom barplot color. Horizontal barchart It makes sense to make your barchart horizontal: group labels are now much easier to read 文章目录 Custom colorHorizontal barchart 探索Barplot的奥秘Barplot基础什么是Barp…...

在资源受限环境下,移动端如何实现流畅动画?如何在内存、CPU、GPU、网络等多种限制条件下,依然保持动画高帧率、低延迟、不卡顿?

在日常生活中&#xff0c;移动设备已经成为不可或缺的工具。从社交、购物到游戏、教育&#xff0c;几乎所有的应用场景都依赖于移动终端的计算和显示能力。然而&#xff0c;随着用户体验的不断提升需求&#xff0c;动画成为了界面交互中不可忽视的一环。动画不仅提升了视觉吸引…...

HJ10 字符个数统计【牛客网】

文章目录 零、原题链接一、题目描述二、测试用例三、解题思路四、参考代码 零、原题链接 HJ10 字符个数统计 一、题目描述 二、测试用例 三、解题思路 基本思路&#xff1a;   建立字符串的散列表&#xff0c;然后统计不同字符个数具体思路&#xff1a;   遍历字符串的字…...

关键点检测算法-RTMPose

一、网络框架&#xff08;top-down模式&#xff09; 二、各部分内容 1、骨干网络 对于网络而言&#xff0c;CXPset太大&#xff0c;可以换成starnet 2、一个卷积层 7x7的卷积核对性能提升最大 3、一个全连接层 将一维关键点表示扩展到由超参数控制的所需维度。 4、一个用…...