File tree Expand file tree Collapse file tree 1 file changed +58
-0
lines changed
Expand file tree Collapse file tree 1 file changed +58
-0
lines changed Original file line number Diff line number Diff line change 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+ }
You can’t perform that action at this time.
0 commit comments