风哥 Redis数据库实战培训课程_Redis集群配置_Redis培训_NoSQL数据库
public int majorityElement(int[] nums) {
return majorityElement(nums, 0, nums.length - 1);
}
public int majorityElement(int[] nums, int start, int end) {
if (start == end || start + 1 == end) {
return nums[start];
}
int mid = (start + end) / 2;
int left = majorityElement(nums, start, mid - 1);
int right = majorityElement(nums, mid, end);
if (left == right) {
return left;
}
// 左右两侧数组中出现次数最多的数字不相同
int leftCount = getCount(nums, start, mid - 1, left);
int rightCount = getCount(nums, mid, end, right);
if (leftCount > rightCount) {
return left;
}
return right;
}