design-a-number-container-system 1.0.0
Design a Number Container System
Loading...
Searching...
No Matches
NumberContainers Class Reference
Collaboration diagram for NumberContainers:

Public Member Functions

 NumberContainers ()
 
void change (int index, int number)
 
int find (int number)
 

Private Attributes

unordered_map< int, priority_queue< int, vector< int >, greater< int > > > nums
 
unordered_map< int, int > index_to_num
 

Detailed Description

Definition at line 5 of file main.cpp.

Constructor & Destructor Documentation

◆ NumberContainers()

NumberContainers::NumberContainers ( )
inline

Definition at line 11 of file main.cpp.

11{}

Member Function Documentation

◆ change()

void NumberContainers::change ( int  index,
int  number 
)
inline

Definition at line 13 of file main.cpp.

14 {
15 if (index_to_num.find(index) != index_to_num.end())
16 {
17 int old_num = index_to_num[index];
18 if (old_num != number) // mark old index as invalid
19 nums[old_num].push(INT_MAX);
20 }
21 index_to_num[index] = number;
22 nums[number].push(index);
23 }
unordered_map< int, priority_queue< int, vector< int >, greater< int > > > nums
Definition main.cpp:7
unordered_map< int, int > index_to_num
Definition main.cpp:8

References index_to_num, and nums.

Referenced by main().

◆ find()

int NumberContainers::find ( int  number)
inline

Definition at line 25 of file main.cpp.

26 {
27 while (!nums[number].empty() && index_to_num[nums[number].top()] != number)
28 nums[number].pop(); // remove invalid indices
29 if (nums[number].empty())
30 return -1;
31 else
32 return nums[number].top();
33 }

References index_to_num, and nums.

Referenced by main().

Field Documentation

◆ index_to_num

unordered_map<int, int> NumberContainers::index_to_num
private

Definition at line 8 of file main.cpp.

Referenced by change(), and find().

◆ nums

unordered_map<int, priority_queue<int, vector<int>, greater<int> > > NumberContainers::nums
private

Definition at line 7 of file main.cpp.

Referenced by change(), and find().


The documentation for this class was generated from the following file: