Skip to content

Commit cac2964

Browse files
authored
Create Code.java
1 parent b803756 commit cac2964

File tree

1 file changed

+58
-0
lines changed

1 file changed

+58
-0
lines changed

Code.java

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import java.util.*;
2+
3+
public class Result {
4+
5+
public static int deleteProducts(List<Integer> ids, int m){
6+
7+
int count=0;
8+
9+
HashSet<Integer> keys = new HashSet<Integer>(ids);
10+
HashMap<Integer,Integer> valueFrequency = new HashMap<Integer,Integer>();
11+
Iterator<Integer> value = keys.iterator();
12+
while (value.hasNext()) {
13+
count=0;
14+
int key = value.next();
15+
for(int id:ids){
16+
if(id==key){
17+
count++;
18+
}
19+
}
20+
valueFrequency.put(key,count);
21+
}
22+
23+
while(m!=0){
24+
25+
Collection<Integer> frequencies = valueFrequency.values();
26+
int minFrquency = Collections.min(frequencies);
27+
if (m==minFrquency){
28+
return keys.size()-1;
29+
}else if (m<minFrquency){
30+
return keys.size();
31+
}else{
32+
int keyToDelete=0;
33+
Iterator<Map.Entry<Integer,Integer>> it = valueFrequency.entrySet().iterator();
34+
while (it.hasNext()) {
35+
Map.Entry<Integer,Integer> pair = (Map.Entry<Integer,Integer>) it.next();
36+
if(pair.getValue()==minFrquency){
37+
keyToDelete=pair.getKey();
38+
break;
39+
}
40+
}
41+
valueFrequency.remove(keyToDelete);
42+
keys.remove(keyToDelete);
43+
m=m-minFrquency;
44+
}
45+
}
46+
47+
return 0;
48+
49+
}
50+
51+
52+
public static void main(String[] args) {
53+
54+
List<Integer> ids = new ArrayList<>() ;
55+
ids.add(1);ids.add(2);ids.add(3);ids.add(1);ids.add(2);ids.add(2);
56+
System.out.println(deleteProducts(ids,3));
57+
}
58+
}

0 commit comments

Comments
 (0)