【牛客网】剑指offer编程题:数组中的重复数字(C++)

       这道题目主要考察数组相关的内容,思路也比较简单。题目中规定所有数字都在0~n-1的范围内,那么这个数组里的数值不会超出长度为n的数组的下标范围0~n-1,只需要找到任意一个重复的数值即可,我们可以对这个数组从头开始遍历:

1、如果 i 与numbers[i] 相等,遍历下一个元素;

2、如果 i 与numbers[i] 不相等,那么:

      如果 numbers[i] == numbers[numbers[i]],就是下标为 i 的元素数值与下标为 numbers[i]的元素数值相同,找到重复数字,返回true;如果 numbers[i] != numbers[numbers[i]],就将numbers[i] 与 numbers[numbers[i]]中的数值互换。继续进行步骤1、2,直到数组的最后一个元素,仍然没有找到数字的话,返回false;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值