日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

找出數(shù)組中重復(fù)的數(shù)字-python版

系統(tǒng) 2116 0

題目:
在一個(gè)長度為n的數(shù)組里有所有數(shù)字都在0~n-1的范圍內(nèi),數(shù)組中某些數(shù)字是重復(fù)的,但不知道有幾個(gè)數(shù)字重復(fù)了,
也不知道每個(gè)數(shù)字重復(fù)了幾次,請(qǐng)找出數(shù)組中任意一個(gè)重復(fù)的數(shù)字,例如,如果輸入長度為7的數(shù)組 [ 2, 3, 1, 0, 2, 5, 3 ] ,
那么對(duì)應(yīng)的輸出是重復(fù)的數(shù)字2或者3。
對(duì)原數(shù)組進(jìn)行排序然后順序查找,時(shí)間 O(nlogn) 空間 O(1)
利用哈希表解決,無需修改原數(shù)組,時(shí)間 O(n) 空間 O(n)
交換原數(shù)組中的元素,時(shí)間 O(n) 空間 O(1)
以下是第三種方法的實(shí)現(xiàn)

            
              
                def
              
              
                repeat
              
              
                (
              
              array
              
                )
              
              
                :
              
              
                if
              
              
                not
              
              
                isinstance
              
              
                (
              
              array
              
                ,
              
              
                list
              
              
                )
              
              
                :
              
              
                return
              
              
                -
              
              
                1
              
              
    n 
              
                =
              
              
                len
              
              
                (
              
              array
              
                )
              
              
                for
              
               i 
              
                in
              
              
                range
              
              
                (
              
              n
              
                )
              
              
                :
              
              
                if
              
              
                not
              
              
                isinstance
              
              
                (
              
              array
              
                [
              
              i
              
                ]
              
              
                ,
              
              
                int
              
              
                )
              
              
                :
              
              
                return
              
              
                -
              
              
                1
              
              
                if
              
               array
              
                [
              
              i
              
                ]
              
              
                <
              
              
                0
              
              
                or
              
               array
              
                [
              
              i
              
                ]
              
              
                >=
              
               n
              
                :
              
              
                return
              
              
                -
              
              
                1
              
              
                for
              
               i 
              
                in
              
              
                range
              
              
                (
              
              n
              
                )
              
              
                :
              
              
        m 
              
                =
              
               array
              
                [
              
              i
              
                ]
              
              
                while
              
              
                (
              
              m 
              
                !=
              
               i
              
                )
              
              
                :
              
              
                if
              
               m 
              
                ==
              
               array
              
                [
              
              m
              
                ]
              
              
                :
              
              
                return
              
               m
              
                ;
              
              
                else
              
              
                :
              
              
                array
              
                [
              
              i
              
                ]
              
              
                ,
              
               array
              
                [
              
              m
              
                ]
              
              
                =
              
               array
              
                [
              
              m
              
                ]
              
              
                ,
              
               array
              
                [
              
              i
              
                ]
              
              
                return
              
              
                -
              
              
                1
              
              
                # 測(cè)試用例
              
              
                # 長度為 n 的數(shù)組里包含一個(gè)或多個(gè)重復(fù)的數(shù)字
              
              
test_case1 
              
                =
              
              
                [
              
              
                2
              
              
                ,
              
              
                3
              
              
                ,
              
              
                1
              
              
                ,
              
              
                0
              
              
                ,
              
              
                2
              
              
                ,
              
              
                5
              
              
                ,
              
              
                3
              
              
                ]
              
              
                # 數(shù)組中不含重復(fù)的數(shù)字
              
              
test_case2 
              
                =
              
              
                [
              
              
                2
              
              
                ,
              
              
                3
              
              
                ,
              
              
                1
              
              
                ,
              
              
                5
              
              
                ,
              
              
                4
              
              
                ,
              
              
                0
              
              
                ]
              
              
                # 無效輸入測(cè)試用例
              
              
test_case3 
              
                =
              
              
                None
              
              
test_case4 
              
                =
              
              
                [
              
              
                2
              
              
                ,
              
              
                6
              
              
                ,
              
              
                1
              
              
                ,
              
              
                0
              
              
                ]
              
              
                print
              
              
                (
              
              
                "test case1:"
              
              
                ,
              
               repeat
              
                (
              
              test_case1
              
                )
              
              
                )
              
              
                print
              
              
                (
              
              
                "test case2:"
              
              
                ,
              
               repeat
              
                (
              
              test_case2
              
                )
              
              
                )
              
              
                print
              
              
                (
              
              
                "test case3:"
              
              
                ,
              
               repeat
              
                (
              
              test_case3
              
                )
              
              
                )
              
              
                print
              
              
                (
              
              
                "test case4:"
              
              
                ,
              
               repeat
              
                (
              
              test_case4
              
                )
              
              
                )
              
            
          

更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 兴业县| 海淀区| 上虞市| 喜德县| 芦山县| 鄱阳县| 石首市| 商河县| 永福县| 浦江县| 甘孜| 焦作市| 习水县| 芮城县| 东山县| 江达县| 丰都县| 当雄县| 龙南县| 霸州市| 思南县| 通城县| 昌图县| 淮南市| 乌鲁木齐市| 阿拉尔市| 大埔县| 盐源县| 昌平区| 桓仁| 外汇| 天柱县| 湖北省| 华蓥市| 十堰市| 全椒县| 塔城市| 墨竹工卡县| 林州市| 海口市| 顺义区|