一:一个数组如何找出重复元素,并打印出重复次数。并且排序.
思路:利用HashMap ---- key的不可重复性实现
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61/** * @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; } }
最后
以上就是外向自行车最近收集整理的关于关于数组的算法面试题:找出数组中的重复元素,并且将数组排序。的全部内容,更多相关关于数组内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复