前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >剑指 Offer 03. 数组中重复的数字

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

原创
作者头像
Michel_Rolle
修改2021-03-08 09:57:33
6700
修改2021-03-08 09:57:33
举报
文章被收录于专栏:LeetCode解题LeetCode解题

链接

找出数组中重复的数字。

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

示例 1:

代码语言:txt
复制
输入:
[2, 3, 1, 0, 2, 5, 3]
输出:2 或 3

说明

  • 2 <= n <= 100000

思路

倒序思考

代码语言:txt
复制
// 此题可以定义一个map来判断,但是有没有更好地方法不开辟新的空间来做,
// 由于数组中的元素都大于等于0,把对应位置的值变为负数
func findRepeatNumber(nums []int) int {
    for _,j := range nums {
        if j < 0 {
            j = -1 * j
        }
        if nums[j] < 0 {
            return j
        }else{
            nums[j] = -1 * j //设置为负数
        }

    }

    return 0 // 由于0没有办法变为负数,所以一旦走到这里,一定是0
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档