-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathKfrequentelements.cpp
More file actions
77 lines (75 loc) · 1.23 KB
/
Copy pathKfrequentelements.cpp
File metadata and controls
77 lines (75 loc) · 1.23 KB
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include<bits/stdc++.h>
using namespace std;
class element{
public:
int num;
int count;
element()
{
count = 1;
}
};
bool myfunction(element A,element B)
{
if(A.count>B.count)
return 0;
else return 1;
}
int main()
{
int T,elements=0;
cin>>T;
cout<<"Frequency Of elements";
int size;
cin>>size;
vector<element> vect;
vector<int> vect2;
while(T--)
{
int data;
cin>>data;
if(find(vect2.begin(),vect2.end(),data)==vect2.end())
{
//Element Not Present
cout<<"NOt"<<endl;
if(elements!=size)
{
element temp;
temp.num = data;
vect.push_back(temp);
make_heap(vect.begin(),vect.end(),myfunction);
vect2.push_back(data);
elements++;
}
else
{//evict
for(int i = vect.size()-1;i>=0;i++)
{
if(vect[i].count == 1)
{
vect[i].num = data;
vect2.push_back(data);
break;
}
}
}
}
else
{
for(int i=0;i<vect.size();i++)
{
if(vect[i].num==data)
{
(vect[i].count)++;
make_heap(vect.begin(),vect.end(),myfunction);
cout<<"Yes"<<vect[i].count<<endl;
break;
}
}
}
}
for(int i=0;i<vect.size();i++)
{
cout<<vect[i].num<<endl;
}
}