• 003.数组中重复的数字


    # -*- coding:utf-8 -*-
    from collections import Counter
    class Solution(object):
        def findRepeatNum(self,input_list):
            if not  input_list:
                return
            c = Counter(input_list)
            result = set()
            for index,num in enumerate(input_list):
                if c[num] >= 2:
                    result.add(num)
            return result
        def find2(self,input_list):
            if not input_list:
                return
            #step 1 : sorted
            input_list.sort()
            result = set()
            #
            for index in  range(len(input_list)-1):
                if input_list[index] == input_list[index+1]:
                    result.add(input_list[index])
            return result
            #step 2:iter
        def find3(self,input_list):
            ##check input
            if not input_list:
                return
            for num in input_list:
                if num <0 or num > (len(input_list)-1):
                    return
            res = set()
            for index in range(0,len(input_list)):
                #如果index代表的元素,如果和index不等的话则处理
                while input_list[index] != index:
                    # #如果input_list[index] == input_list[input_list[index]] 添加到res
                    if input_list[index] == input_list[input_list[index]] :
                        res.add(input_list[index])
                        break #跳出循环
                    #交换
                    else:
                        tmp = input_list[index]
                        input_list[index] = input_list[tmp]
                        input_list[tmp] = tmp
    
            return res
            ##after check
    s = Solution()
    print s.find3([3,1,2,2,2,5,3])
    #find1:space:O(n) time:O(1)
    #find2:space:O(1) time:O(nlog(n))
    #find3:space:O(1) time:O(n)
    

      

  • 相关阅读:
    CNN的学习记录
    softmax和softmax loss的学习记录
    Vue2.0 生命周期
    Vue methods 方法
    Vue2.0 全局操作 Vue.set
    Vue2.0 自定义指令 vuedirective
    Vue2.0 构造器的延伸 Vue.extend
    vue computed
    vuecli 脚手架分析
    h5表单介绍与案例
  • 原文地址:https://www.cnblogs.com/wanyp/p/10065552.html
Copyright © 2020-2023  润新知