CF 137B.Permutation(Java 实现)

题目分析

        输入n个样本,将样本调整为从1到n的包含,需要多少此更改

思路分析

        由于样本量本身就是n,无论怎么给数据要么是重复要么不在1到n的范围,只需要遍历1到n判断数据组中有没有i值即可。

代码


import java.util.*;

public class Main {

	public static void main(String[] args)  {
		Scanner sc = new Scanner(System.in);
		int n= sc.nextInt();//数据量
		sc.nextLine();//吞回车
		HashSet<Integer> set=new HashSet<>();//用HashSet筛掉重复值,每个值的数量不重要
		for (int i = 0; i < n; i++) {//存值
			set.add(sc.nextInt());
		}
		int re=0;//初始化答案
		for (int i = 1; i <= n; i++) {//从1到n遍历
			 if (!set.contains(i)) {//如果set中不包含i,说明这里需要更改一次值
				re++;//更改累加答案
			}
		}
		System.out.println(re);
	}
}

        感谢您能够看到这里,一起见证小何同学的算法学习,如果您有不同的见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值