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         }

 

posted @ 2015-07-25 17:29  叫我霍啊啊啊  阅读(242)  评论(0编辑  收藏  举报