纺织行业网站怎么做,如何注册域名赚钱,可以自己制作动画的app,微信app小程序前言
个人推荐在牛客网刷题(点击可以跳转)#xff0c;它登陆后会保存刷题记录进度#xff0c;重新登录时写过的题目代码不会丢失。个人刷题练习系列专栏#xff1a;个人CSDN牛客刷题专栏。 题目来自#xff1a;牛客/题库 / 在线编程 / 剑指offer#xff1a; 目录前言问题…前言
个人推荐在牛客网刷题(点击可以跳转)它登陆后会保存刷题记录进度重新登录时写过的题目代码不会丢失。个人刷题练习系列专栏个人CSDN牛客刷题专栏。 题目来自牛客/题库 / 在线编程 / 剑指offer 目录前言问题描述举例解法思路代码结果结束语问题描述
在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如如果输入长度为7的数组[2,3,1,0,2,5,3]那么对应的输出是2或者3。存在不合法的输入的话输出-1。 数据范围0≤n≤10000 进阶时间复杂度O(n)空间复杂度On 举例
//输入
[2,3,1,0,2,5,3]
//返回值
2
//说明2或3都是对的 解法思路 只需要重新设计一个等长的数组用于计数原题目中给出的数组元素出现的次数最后返回相应的数组元素。 如果没有说“长度为n的数组里的所有数字都在0到n-1范围内”那就需要设计一个大范围的数组或者动态数组。 代码结果
/*** 代码中的类名、方法名、参数名已经指定请勿修改直接返回方法规定的值即可** * param numbers int整型一维数组 * param numbersLen int numbers数组长度* return int整型*/
int duplicate(int* numbers, int numbersLen ) {int num[10000];//数据范围0≤n≤10000int i;//数组初始化for(i0;inumbersLen;i){num[i] 0;}//按照给定的number数组对应的num数组进行计数计算有多少个重复的数字for(i0;inumbersLen;i){num[numbers[i]];}for(i0;inumbersLen;i){if(num[numbers[i]]1)return numbers[i];}return -1;
}结束语
以上就是该C语言编程题的内容。可以在牛客尝试刷几道题目来练习实践。牛客网刷题(点击可以跳转)可以尝试注册使用。题目来自牛客/题库 / 在线编程 / 剑指offer