Question d’entretien chez Amazon

Write a function that takes in an array and repeats an integer that appears the most.

Réponses aux questions d'entretien

Utilisateur anonyme

6 févr. 2011

Using map , i think one loop is sufficient. private static int mostReapeatingNumber(int[] is) { HashMap map = new HashMap(); int tempHighestCount = 0; int keyHighest = 0; for (int index=0; index tempHighestCount) { tempHighestCount = numCount; keyHighest = number; } } } return keyHighest; }

1

Utilisateur anonyme

9 févr. 2012

I think there's no need to have a map. Just maintain variables prev_max_run, prev_max_num, prev_num, curr_num and curr_run. In the loop if the prev_num was equal to curr_num increment curr_run. When you find the num is different check curr_run with prev_run. If curr_run > prev_run, prev_max_num = curr_num.

Utilisateur anonyme

26 janv. 2011

Confusing. In your example, 2 appears the most. Do you mean the integer that repeats the most consecutively? Cause that would be 3. Anyways, in either case, you can go through the array adding all the key-value pairs (number and times) to a hashmap and then access the hashmap in constant time. O(n).

Utilisateur anonyme

30 janv. 2011

class FindMostOccurences { public static DictionaryEntry MostOccurences(int[] Array) { Hashtable ht = new Hashtable(); for (int i = 0; i Int32.Parse(de.Value.ToString())) { { de.Key = item.Key; de.Value = item.Value; } } } return de; } }

Utilisateur anonyme

25 janv. 2011

if: Array [2][2][3][3][3][2][1][2][1] it should print [3]

Glassdoor | Glassdoor