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