概述
一:一个数组如何找出重复元素,并打印出重复次数。并且排序.
思路:利用HashMap ---- key的不可重复性实现
/**
* @ClassName bubbing
* @Author
* @Date 2020/5/11
* @description : 冒泡排序 并去除数组中的重复数据
* @Version V1.0
**/
public class bubbing {
public static void main(String[] args) {
int[] arr = new int[]{1, 2, 5, 3, 4, 6, 8, 3, 8, 9, 7, 9};
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
Map<Integer, Integer> map = findRepetition(arr);
if (map != null) {
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
if (entry.getValue() > 1) {
System.out.println("元素 " + entry.getKey() + " 重复出现" + entry.getValue() + "次");
} else {
System.out.println("元素 " + entry.getKey() + " 只出现1次 无重复");
}
}
}
}
private static Map<Integer, Integer> findRepetition(int[] arr) {
Map<Integer, Integer> map = new HashMap<>();
if (arr == null || arr.length < 0) {
return null;
}
for (int i = 0; i < arr.length; i++) {
//利用hashMap的containKey进行值的比较,防止null值的情况
if (map.containsKey(arr[i])) {
//将数组中的值当做key 每次有重复的时候次数v+1
map.put(arr[i], map.get(arr[i]) + 1);
}
map.put(arr[i], 1);
}
return map;
}
}
最后
以上就是外向自行车为你收集整理的关于数组的算法面试题:找出数组中的重复元素,并且将数组排序。的全部内容,希望文章能够帮你解决关于数组的算法面试题:找出数组中的重复元素,并且将数组排序。所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复