只遍历一遍 找出两个重复的数(将数组中各元素作为新数组的下标)
2012-11-07 14:50
441 查看
#include <stdio.h>
#define size 10
int main(int argc,constchar * argv[])
{
// insert code here...
//printf("Hello, World!\n");
//只遍历一遍将数组中仅有的两个重复的数找出来
int a[size] = {1,2,3,8,5,6,7,8,9,10};
int b[10+1]
= {0};//数组a
中最大元素加上1 作为b数组的size
for (int i =0; i <size; i++)
{
b[a[i]]++; //将数组中各元素作为新数组的下标,循环遍历当两个下标相同时则自增,即这两个数为原数组中相同的两个数,下面再输出这个数
if (b[a[i]] >1)
{
printf("%d",a[i]);
break;// 找到这个相同的则结束循环
}
}
return0;
}
#define size 10
int main(int argc,constchar * argv[])
{
// insert code here...
//printf("Hello, World!\n");
//只遍历一遍将数组中仅有的两个重复的数找出来
int a[size] = {1,2,3,8,5,6,7,8,9,10};
int b[10+1]
= {0};//数组a
中最大元素加上1 作为b数组的size
for (int i =0; i <size; i++)
{
b[a[i]]++; //将数组中各元素作为新数组的下标,循环遍历当两个下标相同时则自增,即这两个数为原数组中相同的两个数,下面再输出这个数
if (b[a[i]] >1)
{
printf("%d",a[i]);
break;// 找到这个相同的则结束循环
}
}
return0;
}
相关文章推荐
- 程序员面试题目总结--数组(二)【二分查找、找出给定数字出现次数、两个有序整型数组交集、找出数组中唯一的重复元素、判断数组中的数值是否连续相邻】
- 在给定数组中,找出最先满足两个数的和等于给定数,输出这两个元素的下标
- 数组有100个元素,设为数组a[100],存放1-100的数值,但是现在有一个数值重复了,只扫描一遍数组,找出那个重复的数
- 5-8: 输入一个5行、6列的数组,找出该数组中绝对值最大的元素,输出该元素及其两个下标值
- 找出不是两个数组共有的元素
- [置顶] 219. Contains Duplicate II---数组中两个重复的数字的下标最多相差k
- 找出数组中的重复元素
- PAT-找出不是两个数组共有的元素
- 找出两个有序数组中相同的元素
- 找出一个整形数组的所有元素除了一个、两个、三个元素外,其余全是成对出现的,找出这些元素
- 找出数组中唯一的重复元素
- 找出数组中唯一的重复元素
- 找出整型数组中重复次数最多的元素
- 数组-06. 找出不是两个数组共有的元素(20)
- lastIndexOf() 找出指定元素出现的所有位置(返回的是下标数组)---lastIndexOf() 这个方法是倒叙查找,正序的是indexOf()
- 遍历一遍数组找出第二大成员
- 两个有序整形数组找出二者相同的元素和不同的元素
- 两个自小到大的整形数组,找出两个数组的交集的元素
- 从数组中找出两个元素的和等于指定数值,并输出位置。
- 找出不是两个数组共有的元素