题解 | #数组中重复的数字#

数组中重复的数字

http://www.nowcoder.com/practice/6fe361ede7e54db1b84adc81d09d8524

方法一:时间复杂度:O(n)花费时间:0.0010638000000000002
集合使用方法

class Solution:
    def duplicate(self , numbers ):
        # write code here
        if len(numbers) ==0:
            return -1   #执行到该return语句时,函数终止,后边的语句不再执行
        result = set()
        for num in numbers:
            if num not in result:
                result.add(num)
            else:
                return num
        else: #for执行完了还没return,(因为函数遇到return结束),所以在下面函数return
            return -1

方法二:时间复杂度:O(n方)花费时间:5.0910871

class Solution:
    def duplicate(self , numbers ):
        # write code here
        flag = 0  ##定义标志位,如果有两层循环,内层循环执行结束若想要直接跳出全部循环,则需要一个标志位,内层break后在外层开头再break一下
        len_numbers = len(numbers)
        if len_numbers !=0:
            for i in numbers:
                if flag ==1:
                    break
                result = 0
                for j in numbers:
                    if i == j:
                        result += 1
                    if result ==2:
                        output = i
                        flag =1  #找到重复数,需要结束全部内层外层循环,所以这里设置一个标志位
                        break
            if result ==1:
                output = -1
        else:
            output = -1
        return output

总结:数组查重用集合!

全部评论

相关推荐

勤奋努力的椰子这就开摆:这些经历跟硬件都没啥关系呀
点赞 评论 收藏
分享
抱抱碍事梨a:三点建议,第一点是建议再做一个项目,把自我介绍部分顶了,第二点是中南大学加黑加粗,第三点是建议加v详细交流
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务