Divide and Conquer-169. Majority Element
阿新 • • 發佈:2018-01-13
problem pan turn leet return i++ log ble tco
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.
Credits:
Special thanks to @ts for adding this problem and creating all test cases.
int majorityElement(int* nums, int numsSize) { if(numsSize == 0||numsSize == 1) return *nums; int x = majorityElement(nums,numsSize / 2); int y = majorityElement(nums + numsSize / 2,numsSize - numsSize / 2); if(x == y) return x;else { int countX = 0; int countY = 0; for(int i = 0;i < numsSize;i++) { if(*(nums + i) == x) countX++; else if(*(nums + i) == y) countY++; }return countX > countY ? x : y; } }
Divide and Conquer-169. Majority Element