【手把手带你刷好题】—— 55.数组去重(牛客)

举报
安然无虞 发表于 2022/05/26 23:21:02 2022/05/26
【摘要】 【前言】 今天是刷题打卡第55天! 一起加油鸭铁汁们,哈哈,实在是词穷了。   原题:序列中整数去重 原题链接:序列中整数去重_牛客题霸_牛客网  题目描述:   示例: 输入:5 10 12 93 12 75 输出:10 12 93 75 思路 : ...

【前言】

今天是刷题打卡第55天!

一起加油鸭铁汁们,哈哈,实在是词穷了。

 

原题:序列中整数去重

原题链接:序列中整数去重_牛客题霸_牛客网 

题目描述:

 

示例:

输入:5
     10 12 93 12 75
输出:10 12 93 75

思路 :

比较简单,都在代码注释后面咯。

代码执行:

#include<stdio.h>
int main()
{
    int n = 0;
    scanf("%d",&n);
    int arr[5001] = {0};
    int index = 0;//数组中的数
    for(int i = 0; i < n; i++)
    {
        scanf("%d",&index);//依次输入
        if(!arr[index])//如果输入的数不是0
        {
            arr[index] = index;//这样写,可以保留数组中的相同数的一个
            printf("%d ", arr[index]);
        }
    }
    return 0;
}

改编:给定一个正整数数组,对它进行去重操作。

代码如下:

#include<stdio.h>

int main()
{
	int arr[] = { 1,2,2,3,4,5,3,4,6,7 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	//两层循环遍历
	for (int i = 0; i < sz; i++)
	{
		for (int j = i + 1; j < sz; j++)//只需要从后面那个元素开始比较
		{
			if (arr[j] == arr[i])
			{
				arr[j] = 0;
			}
		}
	}
	for (int i = 0; i < sz; i++)
	{
		if (arr[i])//打印不为0的数组元素
		{
			printf("%d ", arr[i]);
		}
	}
	return 0;
}

结语

今天是刷题打卡第55天!

加油吧少年。

 

 

文章来源: bit-runout.blog.csdn.net,作者:安然无虞,版权归原作者所有,如需转载,请联系作者。

原文链接:bit-runout.blog.csdn.net/article/details/121911893

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。