- /**
- *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;
- }
复制代码 |
|