#include <iostream>
#include <vector>
using namespace std;
class Solution {
public:
int majorityElement(vector<int>& nums) {
quickSort(nums, 0, nums.size() - 1);
return nums[nums.size() / 2];
}
int apart(vector<int>& nums, int left, int right){
int i = left, j = right;
int pivot = nums[left];
while (i < j){
while (i < j && nums[j] >= pivot) j--;
if (i < j) nums[i++] = nums[j];
while (i < j && nums[i] < pivot) i++;
if (i < j) nums[j--] = nums[i];
}
nums[i] = pivot;
return i;
}
void quickSort(vector<int>& nums, int left, int right){
if (left < right){
int pivot = apart(nums, left, right);
quickSort(nums, left, pivot - 1);
quickSort(nums, pivot + 1, right);
}
}
};
int main(){
Solution s;
vector<int> nums = {4,4,1,1,2,4,4,4};
cout << s.majorityElement(nums) << endl;
return 0;
}
Leetcode : 169. 多数元素
最新推荐文章于 2024-06-15 04:53:25 发布