using System;
public class Test
{
public static void Main()
{
Console.WriteLine(MajorityElement(new int[] { 1, 2, 3, 1, 2, 3, 3 }));
}
public static int MajorityElement(int[] nums)
{
int count=0;
int candidate = 0;
for(int i = 0; i < nums.Length; i++)
{
if (count == 0)
candidate = nums[i];
count += (nums[i] == candidate) ? 1 : -1;
}
return candidate;
}
}
dXNpbmcgU3lzdGVtOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJQ29uc29sZS5Xcml0ZUxpbmUoTWFqb3JpdHlFbGVtZW50KG5ldyBpbnRbXSB7IDEsIDIsIDMsIDEsIDIsIDMsIDMgfSkpOwoJfQoKcHVibGljICBzdGF0aWMgaW50IE1ham9yaXR5RWxlbWVudChpbnRbXSBudW1zKSAKIHsKICAgICBpbnQgY291bnQ9MDsKICAgICBpbnQgY2FuZGlkYXRlID0gMDsKCiAgICAgZm9yKGludCBpID0gMDsgaSA8IG51bXMuTGVuZ3RoOyBpKyspCiAgICAgewogICAgICAgICBpZiAoY291bnQgPT0gMCkKICAgICAgICAgICAgIGNhbmRpZGF0ZSA9IG51bXNbaV07CiAgICAgICAgIGNvdW50ICs9IChudW1zW2ldID09IGNhbmRpZGF0ZSkgPyAxIDogLTE7CiAgICAgfQogICAgIHJldHVybiBjYW5kaWRhdGU7CiB9Cgp9Cg==
cHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJQ29uc29sZS5Xcml0ZUxpbmUoTWFqb3JpdHlFbGVtZW50KG5ldyBpbnRbXSB7IDEsIDIsIDMsIDEsIDIsIDMsIDMgfSkpOwoJfQoKcHVibGljICBzdGF0aWMgaW50IE1ham9yaXR5RWxlbWVudChpbnRbXSBudW1zKSAKIHsKICAgICBpbnQgY291bnQ9MDsKICAgICBpbnQgY2FuZGlkYXRlID0gMDsKCiAgICAgZm9yKGludCBpID0gMDsgaSAmbHQ7IG51bXMuTGVuZ3RoOyBpKyspCiAgICAgewogICAgICAgICBpZiAoY291bnQgPT0gMCkKICAgICAgICAgICAgIGNhbmRpZGF0ZSA9IG51bXNbaV07CiAgICAgICAgIGNvdW50ICs9IChudW1zW2ldID09IGNhbmRpZGF0ZSkgPyAxIDogLTE7CiAgICAgfQogICAgIHJldHVybiBjYW5kaWRhdGU7CiB9Cgp9Cg==
public class Test
{
public static void Main()
{
Console.WriteLine(MajorityElement(new int[] { 1, 2, 3, 1, 2, 3, 3 }));
}
public static int MajorityElement(int[] nums)
{
int count=0;
int candidate = 0;
for(int i = 0; i < nums.Length; i++)
{
if (count == 0)
candidate = nums[i];
count += (nums[i] == candidate) ? 1 : -1;
}
return candidate;
}
}