黑马程序员技术交流社区
标题:
基础测试题目分享 数组去重复
[打印本页]
作者:
麻木
时间:
2015-4-22 10:05
标题:
基础测试题目分享 数组去重复
/**
*5.数组去重复,例如: 原始数组是{4,2,4,6,1,2,4,7,8},得到结果{4,2,6,1,7,8}
*/
#import <Foundation/Foundation.h>
//新建一个removeDuplicate
//形参 NSInteger* array 代入的整型数据 数组大小 size
//返回值类型 NSInteger 新数组的大小
NSInteger removeDuplicate(NSInteger* array,NSInteger size)
{
//1.取出数组的第一个元素i开始循环遍历
for(NSInteger i = 0;i < size;i++)
{
//1.2将元素i分别与它后面的循环遍历元素j对比
for(NSInteger j = i+1;j < size;j++)
{
//1.3如果i==j,说明有重复元素
if(array[i] == array[j])
{
//1.4则将重复元素去掉后面所有元素往前挪一个位置
for(NSInteger k =j;k+1 < size;k++)
{
array[k] = array[k+1];
}
//1.5j自减1,为了再次检查重复元素的位置,以免后面挪过来的元素还是重复元素
j--;
//1.6将原来数组的最后一位替换成数组结束符'\0'
array[size-1]='\0';
//1.7数组大小减1
size--;
}
}
}
return size;
}
int main(int argc, const char * argv[])
{
@autoreleasepool {
//2.自定义一个数组
NSInteger array[10] = {1,1,1,1,3,3,2,6,2,3};
//3.调用函数removeDuplicate并返回一个值作为新的数组大小 newSize
NSInteger newSize = removeDuplicate(array,10);
//4.重新打印去掉重复元素的数组
for(NSInteger i = 0;i < newSize;i++)
{
NSLog(@"%ld",array[i]);
}
}
return 0;
}
复制代码
作者:
itheima_llt
时间:
2015-4-22 14:38
顶也~~~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2