近来刷LeetCode上面的题。由于是纯菜鸟,很多特简单的题都不太会,而且很多题自己设计的算法,复杂度太高,希望能借助一下这个平台,能够学到大神们更好的算法(C#实现)。
这一题是首先将数组排序,然后找到大于n/2数量的元素即可。
代码如下:
public class Solution {
public int MajorityElement(int[] nums) {
int n = 0;
int min = nums.Length / 2;
Array.Sort(nums);
int currentnum = nums[0];
for (int i = 0; i < nums.Length ; i++)
{
if (nums[i] == currentnum)
{
n++;
if (n > min)
{
break;
}
}
else
{
n = 1;
currentnum = nums[i];
}
}
return currentnum;
}
}