首页 > 代码库 > 第11题:移除数组中的重复元素
第11题:移除数组中的重复元素
/*前几天去爬泰山了,一直没更新,上山时还没什么感觉,下山后简直要崩溃啊,骨头都散了,继续更新......*/
如果看不懂欢迎留言提问或者留下邮箱!!!o(∩_∩)o
第11题:移除数组中的重复元素
给定一个升序排列的数组,去掉重复的数,并返回新的数组的长度。
例如:
数组A = {1, 1, 2},你的函数应该返回长度2,新数组为{1, 2}
要求:
不能新开数组分配额外的空间。即常数空间限制。
提示:
输入一个整数n,以及其对应的数组A[n],输出新数组长度
样例输入
5 0 0 1 1 2
样例输出
3
解析:
#include <stdio.h> int main() { /*i是循环变量,n和A[]是题目要求,temp是一个临时值,用来存储 的值与A[i+1]比较,如果相等则把下一个值置空,反之将A[i+1]赋值给temp count是置空的数目,用原数组长度减去置空数即为新数组长度*/ int i,n,A[1000],temp,count = 0; scanf("%d",&n); for(i = 0;i < n;i++) { scanf("%d",&A[i]); } temp = A[0]; for(i = 1;i < n;i++) { if(A[i] == temp) { A[i] = ' '; count++; } else temp = A[i]; } printf("%d\n",n-count); return 0; }
如果看不懂欢迎留言提问或者留下邮箱!!!o(∩_∩)o
第11题:移除数组中的重复元素
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。