AC 剑指 Offer 03. 数组中重复的数字

简介: AC 剑指 Offer 03. 数组中重复的数字

剑指 Offer 03. 数组中重复的数字

剑指 Offer 03. 数组中重复的数字
找出数组中重复的数字。

在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。

示例 1:
输入:
[2, 3, 1, 0, 2, 5, 3]
输出:2 或 3

限制:
2 <= n <= 100000

解题思路

1)hashmap的解法很容易想到,这里不再赘述
2)认真审题,题意中说明了,数组元素必定在0~n-1的范围内 遍历nums数组,对比每个位置元素,是否是当前位置的元素,即是否满足nums[i] == i

import java.util.HashSet;

class Solution {
    public int findRepeatNumber(int[] nums) {
        // 认真审题,题意中说明了,数组元素必定在0~n-1的范围内 遍历nums数组
        // 对比每个位置元素,是否是当前位置的元素,即是否满足nums[i] == i
        for (int i = 0; i < nums.length; i++) {
            // 如果不满足,则将nums[i]换到nums[nums[i]]位置去
            if (nums[i] != i) {
                while (nums[i] != i) {
                    // 如果此时nums[i] == nums[nums[i]],则为重复元素
                    if (nums[nums[i]] == nums[i]) {
                        return nums[i];
                    } else {
                        int temp = nums[nums[i]];
                        nums[nums[i]] = nums[i];
                        nums[i] = temp;
                    }
                }
            }
            // 如果满足,则继续遍历下一个元素
        }
        return -1;
    }
}
目录
相关文章
|
3月前
|
人工智能 文字识别 内存技术
阿里云Tokens如何收费?免费千万Tokens领取及亿万AI大模型扶持计划申请入口
阿里云Tokens按输入/输出分别计费,价格因模型而异(如Qwen-Turbo:0.0003/0.0006元/千Tokens)。新用户开通百炼平台可免费领7000万Tokens(各模型享100万额度),企业认证还可申领万亿Tokens扶持及2000元券,免费Tokens申请链接:https://t.aliyun.com/U/fPVHqY
624 6
|
3月前
|
人工智能 IDE 开发工具
下一代 IDE,没有文本编辑器
当AI自主写代码,开发者角色正从“编码者”转向“指挥官”。本文以独立开发者打造的CodexMonitor为切入点,揭示OpenAI Codex的平台野心——通过开放的App-Server协议,构建AI Agent时代的“操作系统”。它重新定义IDE:无需编辑器,重在多代理协同、安全审批与工作流编排。协议即权力,平台已启幕。(239字)
600 0
|
11月前
|
算法 Go C++
Go语言实战案例-深度优先遍历DFS
深度优先遍历(DFS)是一种用于遍历图和树结构的重要算法,其核心思想是“一条路走到底”,即沿着每个分支尽可能深入,直到无法继续再回溯。在树中,DFS包括前序、中序和后序三种遍历方式;在图中,DFS可用于寻找路径、计算连通分量、拓扑排序等。该算法通常通过递归或栈实现,适用于解决岛屿数量、迷宫路径、括号生成等经典问题。本文还对比了DFS与BFS的区别,并介绍了其在不同场景下的应用与实现方法。
|
监控 安全 BI
10 种最常见的 Active Directory (AD) 攻击
Active Directory(AD)是组织信息管理的核心,但在身份验证与访问控制中也面临诸多攻击风险。本文总结了十大常见AD攻击类型,包括基于密码的攻击(暴力破解、密码喷洒)、NTLM认证攻击(哈希传递、中继攻击)、Kerberos认证攻击(Kerberoasting、银票、金票)、复制机制攻击(DCSync、DCShadow)以及勒索软件攻击等,并提供检测与防护建议。为强化AD安全,ManageEngine ADAudit Plus可有效分析威胁、生成报表,助力构建坚固的安全防线。
723 11
|
机器学习/深度学习 人工智能 自然语言处理
《鱼与熊掌兼得:DataWorks中AI驱动的数据脱敏与可用性平衡术》
在数字化时代,数据成为企业核心资产,驱动业务决策与创新。DataWorks作为大数据处理平台,利用AI技术进行数据脱敏,确保隐私保护的同时维持数据可用性。通过生成对抗网络(GAN)和自然语言处理,DataWorks能生成既保留特征又符合隐私要求的脱敏数据,支持机器学习模型训练。此外,建立数据映射关系和应用数据增强技术,进一步提升脱敏数据的实用性和多样性。尽管面临挑战,DataWorks正不断优化算法,结合新兴技术,实现数据隐私与价值挖掘的平衡,助力数字经济健康发展。
670 29
HTTPS 证书自动化运维:https证书管理系统之自动化签发
通过访问【https://www.lingyanspace.com】注册账户,进入证书服务菜单并新增证书。填写域名(单域名、多域名或泛域名),创建订单后添加云解析DNS记录进行质检。确认完成后可下载证书,并支持后续查看、更新和定时更新功能。证书过期前15天自动更新,需配置邮箱接收通知。
HTTPS 证书自动化运维:https证书管理系统之自动化签发
|
存储 NoSQL 关系型数据库
数据库管理系统
【10月更文挑战第8天】
1171 1
|
前端开发 Python
python之【Tkinter模块】
python之【Tkinter模块】
419 5
|
SQL 数据库 开发者
全面提速你的数据访问:Entity Framework Core性能优化指南,从预加载到批量操作的最佳实践揭秘,打造高性能数据库交互体验
【8月更文挑战第31天】本文详细介绍如何在Entity Framework Core(EF Core)中优化数据访问性能,涵盖从创建项目到定义领域模型、配置数据库上下文的最佳实践。文章通过具体代码示例讲解了预加载、惰性加载、显式加载、投影及批量操作等技术的应用,并介绍了如何使用SQL查询和调整查询性能来进一步提升效率。通过合理运用这些技术,开发者可以构建出高效且响应迅速的数据访问层,提升应用程序的整体性能和用户体验。
678 1
|
安全 Ubuntu Linux
在Linux中,如何进行系统升级?
在Linux中,如何进行系统升级?

热门文章

最新文章