(七)一个寻找数组中众数的算法

Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times.

You may assume that the array is non-empty and the majority element always exist in the array.


PS:题目中很无耻的要求众数的标准为出现次数大于数组长度一半的数,且假定这个数字一定存在


=================================我是可爱的分隔符,上面是题目,下面是代码====================================

以下是简单的逻辑:

一、先把数组排序

二、判断第一个数如果和中间的数相等,则众数为第一个数,如果最后一个数和中间的数相等,则众数为最后一个数,否则众数为中间的数


public class Solution {
	public int majorityElement(int[] nums) {
		Arrays.sort(nums);
		int len = nums.length;
		if (nums[0] == nums[len / 2]) {
			return nums[0];
		} else if (nums[len-1] == nums[len / 2]) {
			return nums[len - 1];
		} else {
			return nums[len / 2];
		}
	}
}


你可能感兴趣的:(算法,原创,leetcode)