剑指offer 面试题3中题目一的解答方法,使用hash列表进行排序。
解题的前提是已知具有重复的数字并且字符串长度和最大字数相同。
P.S.
- 没有判断字符串长度
- c语言中在函数中进行参数传递时,如果涉及数组则传递的数字为数组第一位数的指针
解题代码为
int findRepeatNumber(int* nums, int numsSize)
{
int repeat;
int i;
int numtemp;
for (i=0 ;i<numsSize ;++i)
{
while (nums[i] != i)
{
numtemp = nums[i];
if (numtemp == nums[numtemp])
return numtemp;
else
{
nums[i] = nums[numtemp];
nums[numtemp] = numtemp;
}
}
}
return false;
}