共五道编程题
第一题:给一组数组,求数组里两个数的差为k的 不重复对数。
*输入: 第一行:数组的个数 和 k值
* 第二换:数组元素
* 输入:去重后的 个数
*
* 比如 输入: 6 2
* 1 5 3 3 4 2
* 输出: 3
*
* 输入: 4 0
* 1 1 1 1
* 输出: 1
这题烦在 怎么去重。
这题首先可以将 输入的数组去重, 可以用双指针做(我感觉比较烦)
自己想了一个比较讨巧的方法,用set,代码很简单,自己测试了几个用例,过了,但是没有机会在平台上跑,不知道能AC多少(主要是做题的时候没想到这个,自己太菜了)
importjava.util.HashSet;
importjava.util.Scanner;
importjava.util.Set;
publicclassMain {
publicstaticvoidmain(String[]args) {
Scannersc=newScanner(System.in);
intN= Integer.parseInt(sc.next());
intk= Integer.parseInt(sc.next());
HashSetset=newHashSet();
for(inti= 0;i
set.add(sc.nextInt());
}
intcount= 0;
for(Integernum:set){
if(set.contains(num+k)){
count++;
}
}
}
}
领取专属 10元无门槛券
私享最新 技术干货