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

数组中重复的数字

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

总结:数组查重用集合!

全部评论

相关推荐

合适才能收到offe...:项目岗是什么岗?我看你有段好像跟策划运营相关,如果找运营的话第三段经历写详细点儿。 个人建议是把自我评价删了换成专业技能放在工作经验上或者下面。学生会那个也可以删,把第一个包装成店铺运营,写4-6给点。第三个也是写4-6个点。注意工作内容➕部分数据。 投递的时候BOS招呼用语改一下,换成我有xx工作经验,熟练掌握xx技能样式,也可以简历截图然后直接发送。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务