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