// method 1
public static int majorityElement_1(int[] num) {
int major=num[0], count = 1;
for (int i=1; i<num.length;i++) {
if (count == 0) {
count++;
major=num[i];
} else if (major == num[i]) {
count++;
} else count--;
}
return major;
}
// method 2
public static int majorityElement_2(int[] nums) {
Arrays.sort(nums);
return nums[nums.length/2];
}
// method 3
public static int majorityElement_3(int[] nums) {
Map<Integer, Integer> myMap = new HashMap<Integer, Integer>();
//Hashtable<Integer, Integer> myMap = new Hashtable<Integer, Integer>();
int ret=0;
for (int num: nums) {
if (!myMap.containsKey(num))
myMap.put(num, 1);
else
myMap.put(num, myMap.get(num)+1);
if (myMap.get(num)>nums.length/2) {
ret = num;
break;
}
}
return ret;
}