数组下面的线表示如果众数是数组中的最小值时覆盖的下标,数组下面的线表示如果众数是数组中的最大值时覆盖的下标。对于其他的情况,这条线会在这两种极端情况的中间。因此,无论众数是多少,返回[n/2]下标对应的值都是正确的。
结论
如果将数组 nums 中的所有元素按照单调递增或单调递减的顺序排序,那么下标为[n/2]的元素(下标从
0
开始)一定是众数。
public int majorityElement(int[] nums) {
Arrays.sort(nums);
return nums[nums.length / 2];
}