(七)一個尋找陣列中眾數的演算法

不了痕發表於2016-04-14

 

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];
		}
	}
}

 

 

 

 

 

相關文章