Skip to content

Latest commit

 

History

History
executable file
·
60 lines (48 loc) · 1.48 KB

1150. Check If a Number Is Majority Element in a Sorted Array.md

File metadata and controls

executable file
·
60 lines (48 loc) · 1.48 KB

1150. Check If a Number Is Majority Element in a Sorted Array, easy, locked

Given an array nums sorted in non-decreasing order, and a number target, return True if and only if target is a majority element.

A majority element is an element that appears more than N/2 times in an array of length N.

Example 1:

Input: nums = [2,4,5,5,5,5,5,6,6], target = 5 Output: true Explanation: The value 5 appears 5 times and the length of the array is 9. Thus, 5 is a majority element because 5 > 9/2 is true. Example 2:

Input: nums = [10,100,101,101], target = 101 Output: false Explanation: The value 101 appears 2 times and the length of the array is 4. Thus, 101 is not a majority element because 2 > 4/2 is false.

Note:

1 <= nums.length <= 1000 1 <= nums[i] <= 10^9 1 <= target <= 10^9

// 4ms, 89%
class Solution {
public:
    bool isMajorityElement(vector<int>& nums, int target) {
        if (nums.empty()) return false;
        auto it = equal_range(nums.begin(), nums.end(), target);
        return it.second - it.first > nums.size()/2;
    }
};

// 4ms, 89%
class Solution {
public:
    bool isMajorityElement(vector<int>& nums, int target) {
        if (nums.empty()) return false;
        int cc = 0;
        for (int i = 0; i < nums.size(); i++) {
            if (nums[i] == target)
                cc++;
            else {
                if (cc > nums.size()/2)
                    return true;
                cc = 0;
            }
        }
        return cc > nums.size()/2;
    }
};