力扣:剑指 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

相关内容

热门资讯

走走停停五年级作文【精简3篇... 走走停停五年级作文 篇一:我的暑假生活暑假已经到来了,我迫不及待地计划着如何度过这个美好的假期。我和...
教室里的掌声作文600字四年... 教室里的掌声作文600字四年级 篇一教室里的掌声今天,当我走进教室的时候,一阵热烈的掌声迎接着我。我...
四年级写景作文【通用6篇】 四年级写景作文 篇一秋天的森林今天我来到了一个美丽的森林,这是我第一次来到这里,我迫不及待地想探索一...
美丽的校园就像我的家四年级作... 篇一:美丽的校园就像我的家在我眼中,学校就像我的第二个家。它不仅给予了我学习的机会和知识的智慧,更重...
优秀文章《童年趣事》【最新5... 优秀文章《童年趣事》 篇一小时候,我和爷爷奶奶住在一个小村庄里。那里的生活简单而宁静,我们的童年充满...
四年级200字校园作文大全【... 四年级200字校园作文大全 篇一我的校园生活我是一名四年级的学生,我喜欢我的校园生活。在校园里,我有...
寒假里的新鲜事四年级作文50... 篇一:寒假里的新鲜事寒假里的新鲜事四年级作文500字 篇一寒假终于来了,我和爸爸妈妈一起去了北京旅游...
描写春天的四年级作文400字... 描写春天的四年级作文400字 篇一春天的颜色春天是一个充满色彩的季节。当冬天的寒冷逐渐消散,春姑娘轻...
登碧云峰四年级作文(优秀3篇... 登碧云峰四年级作文 篇一我的暑假生活暑假来临了,我迫不及待地来到了碧云峰。碧云峰是一个美丽的山脉,被...
我爱我家四年级优秀满分作文(... 我爱我家四年级优秀满分作文 篇一家,是我最温暖的港湾家是一个人最亲近的地方,我也不例外。我爱我家,因...
我也有犯错的时候小学生作文(... 我也有犯错的时候小学生作文 篇一我也有犯错的时候我是一个小学生,虽然我还小,但是我也会犯错。每个人都...
向你介绍我400字作文四年级... 向你介绍我400字作文四年级作文 篇一我叫小明,是一个四年级的学生。今天我要向你介绍一下我自己。首先...
四年级上册第六单元作文记一次... 四年级上册第六单元作文记一次游戏 篇一我最喜欢的游戏是“捉迷藏”。这个游戏非常有趣,不仅能锻炼我们的...
低头族作文四年级【通用6篇】 低头族作文四年级 篇一低头族的危害如今,低头族成为了一个非常流行的词汇。低头族指的是那些长时间低头看...
四年级上册作文新学期新鲜事(... 四年级上册作文新学期新鲜事 篇一新学期开始了,我迫不及待地走进了教室,发现自己的座位旁边多了一个新同...
博饼四年级作文【最新3篇】 博饼四年级作文 篇一我的博饼经历今天是中秋节,我参加了学校举办的博饼活动。这是我第一次参加博饼,我非...
四年级作文小河的自述【优秀6... 四年级作文小河的自述 篇一我是一条小河,我从山上的泉源处开始,蜿蜒流淌过一个美丽的村庄。我见证了这里...
公园四年级作文【精选6篇】 公园四年级作文 篇一:我的公园之旅今天,我和爸爸妈妈一起去了附近的公园。公园里绿树成荫,花香四溢,充...
校园的春天四年级作文400字... 校园的春天四年级作文400字 篇一春天是一个充满生机和希望的季节,而校园的春天更是美丽而多彩的。每年...
我和神笔马良过一天四年级作文... 我和神笔马良过一天四年级作文 篇一在一个晴朗的周末早晨,我和神笔马良一起度过了一个奇幻的一天。早上醒...