zoukankan      html  css  js  c++  java
  • 剑指 Offer 03. 数组中重复的数字

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

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

    思路:

    利用nums中的数字都在[0, n-1]区间中,让nums中index和value相等,当找到相等的则表示重复。

    • 注意while语句
    • nums[idx] == nums[nums[idx]]
    • 不能直接交换
    class Solution:
        def findRepeatNumber(self, nums: List[int]) -> int:
            for idx, num in enumerate(nums):
                while nums[idx] != idx:
                    if nums[idx] == nums[nums[idx]]:
                        return nums[idx]
                    else:
                        t = nums[idx]
                        nums[idx] = nums[t]
                        nums[t] = t
            return -1
    
  • 相关阅读:
    background-clip与background-origin
    jquery判断一个元素是否为某元素的子元素
    Math.pow()实现开任意次方根
    vue基础点
    css3
    css系统学习
    angularJs
    jquery与JavaScript
    bootstrapt使用
    bootstrap
  • 原文地址:https://www.cnblogs.com/fengcnblogs/p/13509710.html
Copyright © 2011-2022 走看看