题解 | #序列中整数去重#

序列中整数去重

https://www.nowcoder.com/practice/6564a2f6e70f4153ad1ffd58b2b28490

#include <stdio.h>
int main() 
{
    int n,i,j=0,k;
    scanf("%d",&n);
    int a[n];
    for(i=0;i<n;i++)
    {
		scanf("%d",&a[i]);
	}
	for(i=0;i<n;i++)
	{
		for(j=i+1;j<n;j++)
		{
			if(a[i]==a[j])
			{
				for(k=j;k<n-1;k++)
				{
					a[k]=a[k+1];
				}
				n--;
				j--;
			}		
		}
	}
	for(i=0;i<n;i++)
	printf("%d ",a[i]);
    return 0;
}

第21 22行的n--,j--较难理解,n--是去重一个就让数组长度减一,方便一会打印;j--则是和j下次循环时j++作用相互抵消,再判断一次新的a[j](即原先的a[j+1],向前移了一位)和a[i]是否相等

全部评论

相关推荐

09-19 13:59
门头沟学院 Java
用微笑面对困难:Trae一下,如果真成了,他用了直接发字节起诉代码版权,,这个代码不商用是没问题的如果没成也是情理之中的。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务