专栏首页LeetCode解题剑指 Offer 03. 数组中重复的数字
原创

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

链接

找出数组中重复的数字。

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

示例 1:

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

说明

  • 2 <= n <= 100000

思路

倒序思考

// 此题可以定义一个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
}

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

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

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

    韩旭051
  • LeetCode刷题记录:剑指 Offer 03. 数组中重复的数字

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

    英雄爱吃土豆片
  • 剑指Offer 面试题03. 数组中重复的数字

    来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-sh...

    TrueDei
  • 剑指 03— 数组中重复的数字

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

    Java架构师必看
  • 剑指offer 数组中重复的数字

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

    week
  • 剑指Offer-数组中重复的数字

    package Array; /** * 数组中重复的数字 *在一个长度为n的数组里的所有数字都在0到n-1的范围内。 * 数组中某些数字是重复的,但不...

    武培轩
  • 【剑指offer】数组中重复的数字

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    喜欢ctrl的cxk
  • 剑指offer——数组中重复的数字

    题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组...

    AI那点小事
  • 【剑指Offer】3. 数组中重复的数字

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

    瑞新

扫码关注云+社区

领取腾讯云代金券