用哈希一次过,一个套路
public class Solution {
public int MajorityElement(int[] nums) {
int res = 0;
int zslen = nums.Length / 2;
var dic = new Dictionary<int, int>();
for (int i = 0; i < nums.Length; i++)
{
if (dic.ContainsKey(nums[i]))
{
dic[nums[i]]++;
}
else
{
dic[nums[i]] = 1;
}
}
foreach (var item in dic)
{
if (item.Value>zslen)
{
res = item.Key;
}
}
return res;
}
}
方法二: 20200313
public class Solution {
public int MajorityElement(int[] nums) {
Array.Sort(nums);
return nums[nums.Length/2];
}
}
方法三: hashset
public class Solution {
public int MajorityElement(int[] nums) {
int result = 0;
List<int> num = nums.ToList();
HashSet<int> set = new HashSet<int>();
for (int i = 0; i < nums.Length; i++)
{
set.Add(nums[i]);
}
foreach (var item in set)
{
int temporary= num.Count(c => c == item);
double dn = nums.Length / 2;
if (dn < temporary)
{
result = item;
break;
}
}
return result;
}
}