剑指offer,page39

剑指offer,page39

# # 寻找数组中重复的数字


def bool_ifrepeat1(arr):
    for ii in range(len(arr)):
        if arr[ii]!=ii:
            arr[ii],arr[arr[ii]]=arr[arr[ii]],arr[ii]

def bool_ifrepeat2(arr):
    for ii in range(len(arr)):
        print(111)
        while arr[ii]!=ii:
            print(222)
            if arr[ii]==arr[arr[ii]]:
                return True
            # exchange the position
            # arr[ii],arr[arr[ii]]=arr[arr[ii]],arr[ii]  error!!
            x1,x2 = arr[arr[ii]],arr[ii]
            arr[arr[ii]] = x2
            arr[ii] = x1
            print(arr)
    return False

def bool_ifrepeat3(arr):
    if len(arr)<=0:
        return False
    for ii in range(len(arr)):
        if arr[ii]>=len(arr) or arr[ii]<0:
            return False
    for ii in range(len(arr)):
        print(111)
        while arr[ii]!=ii:
            print(222)
            if arr[ii]==arr[arr[ii]]:
                return True
            # exchange the position
            # arr[ii],arr[arr[ii]]=arr[arr[ii]],arr[ii]  error!!
            x1,x2 = arr[arr[ii]],arr[ii]
            arr[arr[ii]] = x2
            arr[ii] = x1
            print(arr)
    return False


ans = bool_ifrepeat3([2,3,1,0,2,5,3])
print(ans)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值