力扣:剑指 Offer 03. 数组中重复的数字(c语言详解)
创始人
2024-05-31 09:30:29
0

前言:内容包括:题目,代码实现,大致思路,代码解读

题目:

找出数组中重复的数字。


在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。

示例 1:

输入:
[2, 3, 1, 0, 2, 5, 3]
输出:2 或 3 

代码实现:

int findRepeatNumber(int* nums, int numsSize)
{int i = 0;for(i=0;i

大致思路: 

采用原数字修改的方法:

遍历整个数组:

1 若是下标值和此下标所对应的空间中的数值相等(专业对口),则跳过当前空间,判断下一个空间

可以想象成专业对口:arr[0]的岗位上若是0,则专业对口,就跳过这个岗位去判断下一个岗位是否专业对口,若不是0,则需要找到与岗位arr[0]专业对口的人

2 若是不相等(专业不对口),则以这个A空间中的值为下标,找到另一块B空间,并判断在B空间中是否已经有了专业对口的人(下标值和它对应的空间中的值相等),若是已经有了,则此下标就是重复的数字,返回它的值,若是没有,则交换A,B两个空间中的值

3 若是交换两个空间中的值后需要i--,因为马上要执行的语句是i++,这样做的效果是先退后一步,再前进一步==原地不动,因此可以再次对arr[i] 进行判断是否专业对口(即下标值=对应空间中的数值)

4 若是整个循环结束后都没有返回,则说明找不到重复数字,返回-1

比如:

2310253
下标0 123456

遍历整个数组,i刚开始是0 

a .arr[0]=2 与下标0的值不等:专业不对口

b. arr[2]=1 并且 1和下标2不等:交换arr[0]和arr[2]-> arr[0]=1 arr[2]=2

1320253
下标0 123456

c 由于发生交换,则i--,i=-1,由于下一步是i++(马上要遍历到第二个元素),故而i最终还是0

   接着判断arr[0]是否专业对口,arr[0]=1 ,专业不对口,则:重复b,c

   arr[1]=3 专业不对口,交换arr[0]和arr[1]->arr[0]=3 arr[1]=1

3120253
下标0 123456

   由于发生交换,则i--,又i++,最终i=0

 判断arr[0]是否专业对口,arr[0]=3,专业不对口,则:重复b,c

arr[3]=0 专业不对口,交换arr[0]和arr[3]->arr[0]=0 arr[3]=3

0123253
下标0 123456

 i--,i++,i=0,判断arr[0]是否专业对口,arr[0]=0,专业对口,则i++,找下一个空间,判断它是否专业对口:找到下标i=1的空间

arr[1]=1,专业对口,i++, i=2,找下一个空间判断:arr[2]=2,专业对口,i++,i=3,找下一个空间判断:arr[3]=3,专业对口,i++,i=4,找下一个空间判断:arr[4]=2,专业不对口,又arr[2]=2,已经专业对口了,则2是重复数字,返回它

代码解读:

int findRepeatNumber(int* nums, int numsSize)
{int i = 0;for(i=0;i

相关内容

热门资讯

退休人员在座谈会上的发言稿 退休人员在座谈会上的发言稿(通用10篇)  在发展不断提速的社会中,我们使用上发言稿的情况与日俱增,...
小学语文第六册《检阅》的说课... 小学语文第六册《检阅》的说课稿  一、说教材:  《检阅》是人教版第六册第四组的一篇课文,报告了波兰...
小学语文一年级《骑牛比赛》说... 小学语文一年级《骑牛比赛》说课稿  一、说教材  (一)分析教材  《骑牛比赛》是苏教版小学语文第一...
期中考试动员会发言稿 期中考试动员会发言稿(精选15篇)  在我们平凡的日常里,发言稿的使用频率越来越高,发言稿可以提高发...
新闻稿写作与 新闻稿写作与例文  新闻稿是公司/机构/政府/学校等单位发送予传媒的通信渠道,用来公布有新闻价值的消...
期末考试国旗下讲话稿 期末考试国旗下讲话稿(精选25篇)  在现在的社会生活中,很多地方都会使用到讲话稿,讲话稿可以按照用...
家长会家长代表的发言稿 家长会家长代表的发言稿(精选13篇)  在当下社会,我们可以使用发言稿的机会越来越多,发言稿特别注重...
过秦论说课稿 过秦论说课稿  一、说教材  (一)教材所处的地位和作用  高中语文必修5本书共有文言文单元5个,1...
优秀教师代表发言稿 有关优秀教师代表发言稿(精选7篇)  在社会发展不断提速的今天,我们使用上发言稿的情况与日俱增,发言...
高考百日誓师大会发言稿 高考百日誓师大会发言稿通用15篇  现如今,越来越多地方需要用到发言稿,发言稿是作为在特定的情境中供...
《输送血液的泵一一心脏》说课... 《输送血液的泵一一心脏》说课稿范文  作为一名教职工,通常需要准备好一份说课稿,说课稿有助于教学取得...
《形神拳》说课稿 《形神拳》说课稿  一、指导思想、理论依据:  本课以新的课程标准为依据,倡导主体性与研究性的学习,...
晚会主持稿 晚会主持稿范文(通用11篇)  在充满活力,日益开放的今天,很多地方都会使用到主持稿,主持稿是以节目...
国旗下讲话稿 国旗下讲话稿(通用20篇)  在我们平凡的日常里,我们很多时候都不得不用到讲话稿,讲话稿一般是开会前...
新闻稿标题怎么写 新闻稿标题怎么写  新闻稿异于新闻,新闻稿是鼓励新闻记者在该题材上撰写的稿件。那么新闻稿该如何起一个...
校园文化艺术节动员大会发言稿 校园文化艺术节动员大会发言稿(通用13篇)  随着社会不断地进步,发言稿使用的情况越来越多,发言稿在...
校园新闻稿 校园新闻稿范文校园活动进行后,写一份新闻稿是为了更好的记录下这个活动的经过,校园新闻稿范文。校园新闻...
记承天寺夜游说课稿 导语:以下是相关的内容范文,欢迎大家前来借鉴!更多的内容请关注大学网!《记承天寺夜游》说课稿一、 说...
幸福的大桌子说课稿 幸福的大桌子说课稿  作为一位优秀的人民教师,往往需要进行说课稿编写工作,说课稿可以帮助我们提高教学...
精选情感电台广播稿   本站为大家精选了精选情感电台广播稿,欢迎阅读。  精选情感电台广播稿【一】  大家好,收音机旁我...