- Practice
- Algorithms
- Implementation
- Migratory Birds

# Migratory Birds

# Migratory Birds

Given an array of bird sightings where every element represents a bird type id, determine the id of the most frequently sighted type. If more than 1 type has been spotted that maximum amount, return the smallest of their ids.

**Example**

There are two each of types and , and one sighting of type . Pick the lower of the two types seen twice: type .

**Function Description**

Complete the *migratoryBirds* function in the editor below.

migratoryBirds has the following parameter(s):

*int arr[n]*: the types of birds sighted

**Returns**

*int:*the lowest type id of the most frequently sighted birds

**Input Format**

The first line contains an integer, , the size of .

The second line describes as space-separated integers, each a type number of the bird sighted.

**Constraints**

- It is guaranteed that each type is , , , , or .

**Sample Input 0**

```
6
1 4 4 4 5 3
```

**Sample Output 0**

```
4
```

**Explanation 0**

The different types of birds occur in the following frequencies:

- Type : bird
- Type : birds
- Type : bird
- Type : birds
- Type : bird

The type number that occurs at the highest frequency is type , so we print as our answer.

**Sample Input 1**

```
11
1 2 3 4 5 4 3 2 1 3 4
```

**Sample Output 1**

```
3
```

**Explanation 1**

The different types of birds occur in the following frequencies:

- Type :
- Type :
- Type :
- Type :
- Type :

Two types have a frequency of , and the lower of those is type .