题解 | #删除字符串中出现次数最少的字符#
删除字符串中出现次数最少的字符
https://www.nowcoder.com/practice/05182d328eb848dda7fdd5e029a56da9
找到最小值也可以实现如下:
int min = Integer.MAX_VALUE; for(int frequency : map.values()){ if(min > frequency){ min = frequency; } }
当然,面试的时候也有让你找第 2 小的,难为程序员的还得是程序员啊
int min = Integer.MAX_VALUE; int min2 = Integer.MAX_VALUE; for(int frequency : map.values()){ if(min > frequency){ min = frequency; min2 = min; } }
那你,再找下第 N 小的值:
int min = Integer.MAX_VALUE; int len = map.values().length; int mink = Ineger.MAX_VALUE; final k = N; if(k > len){ System.out.println("-1"); return; } List<Integer> sorted = new ArrayList<>(k); for(int i = 0; i < len; i++){ if(sorted.size()==0){ sorted.add(map.values().get(i)); }else{ if(sorted.size() == k && map.values().get(i) < sorted.get(k-1)){ sorted.removeLast() } for(int j =0; j < sorted.size();j++){ if(sorted.get(j)>=map.values().get(i)){ sorted.add(j,map.values().get(i)); } } } } mink = sorted.get(k-1); System.out.println(mink);