Dominator
1 /// <summary> 2 /// Solution 3 /// 100/100 4 /// </summary> 5 /// <param name="A"></param> 6 /// <returns></returns> 7 public static int solution(int[] A) 8 { 9 int maxKey; 10 int maxValue; 11 12 if (A.Length == 0) 13 return -1; 14 if (A.Length == 1) 15 return 0; 16 17 Dictionary<int, int> dic = new Dictionary<int, int>(); 18 foreach (int num in A) 19 { 20 if (!dic.ContainsKey(num)) 21 dic.Add(num, 1); 22 else 23 dic[num]++; 24 } 25 26 dic = dic.OrderBy(o => o.Value).ToDictionary(o => o.Key, p => p.Value); 27 maxKey = dic.Keys.Last<int>(); 28 maxValue = dic.Values.Last<int>(); 29 30 if (maxValue > A.Length / 2) 31 { 32 for (int i = 0; i < A.Length; i++) 33 if (A[i] == maxKey) 34 return i; 35 } 36 37 return -1; 38 }