# Most Frequent Number in Intervals in C++

C++Server Side ProgrammingProgramming

Suppose we have a list of lists of integers intervals where each element has interval like [start, end]. We have to find the most frequently occurred number in the intervals. If there are ties, then return the smallest number.

So, if the input is like [[2, 5],[4, 6],[7, 10],[8, 10]], then the output will be 4

To solve this, we will follow these steps −

• Define one map m

• cnt := 0, val := 0

• for each value it in x −

• (increase m[it] by 1)

• decrease m[it + 1] by 1

• last := 0

• for each key it in m

• last := last + value of it

• if last > cnt, then:

• cnt := last

• val := it

• return val

Let us see the following implementation to get better understanding −

## Example

Live Demo

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
int solve(vector<vector<int>>& x) {
map <int, int> m;
int cnt = 0;
int val = 0;
for(auto& it : x){
m[it]++;
m[it + 1]--;
}
int last = 0;
for(auto& it : m){
last += it.second;
if(last > cnt){
cnt = last;
val = it.first;
}
}
return val;
}
};
main() {
Solution ob;
vector<vector<int>> v = {{2, 5},{4, 6},{7, 10},{8, 10}};
cout << ob.solve(v);
}

## Input −

{{2, 5},{4, 6},{7, 10},{8, 10}}

## Output

4