住房和城乡建设部标准定额网站,亚马逊跨境电商开店流程及费用,wordpress4.9部署,在哪些软件上建设网站文章目录1. 题目2. 解题2.1 暴力2.2 二分查找1. 题目
给出一个按 非递减 顺序排列的数组 nums#xff0c;和一个目标数值 target。 假如数组 nums 中绝大多数元素的数值都等于 target#xff0c;则返回 True#xff0c;否则请返回 False。
所谓占绝大多数#xff0c;是指…
文章目录1. 题目2. 解题2.1 暴力2.2 二分查找1. 题目
给出一个按 非递减 顺序排列的数组 nums和一个目标数值 target。 假如数组 nums 中绝大多数元素的数值都等于 target则返回 True否则请返回 False。
所谓占绝大多数是指在长度为 N 的数组中出现必须 超过 N/2 次。
示例 1
输入nums [2,4,5,5,5,5,5,6,6], target 5
输出true
解释
数字 5 出现了 5 次而数组的长度为 9。
所以5 在数组中占绝大多数因为 5 次 9/2。示例 2
输入nums [10,100,101,101], target 101
输出false
解释
数字 101 出现了 2 次而数组的长度是 4。
所以101 不是 数组占绝大多数的元素因为 2 次 4/2。提示
1 nums.length 1000
1 nums[i] 10^9
1 target 10^9来源力扣LeetCode 链接https://leetcode-cn.com/problems/check-if-a-number-is-majority-element-in-a-sorted-array 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。 2. 解题
2.1 暴力
class Solution {
public:bool isMajorityElement(vectorint nums, int target) {int count 0, n nums.size();for(int i 0; i n; i)if(nums[i] target)count;if(n1)return count n/2;return count n/21;}
};4 ms 7.7 MB
2.2 二分查找
class Solution {
public:bool isMajorityElement(vectorint nums, int target) {int i bs1(nums,0,nums.size()-1, target);int j bs2(nums,0,nums.size()-1, target);int count (i!-1j!-1) ? (j-i1) : 0;int n nums.size();if(n1)return count n/2;return count n/21;}int bs1(vectorint a, int l, int r, int t){ //最前面的目标int mid;while(l r){mid l((r-l)1);if(a[mid] t)l mid1;else if(a[mid] t)r mid-1;else{if(mid0 || a[mid-1] t)return mid;r mid - 1;}}return -1;}int bs2(vectorint a, int l, int r, int t){ //最后面的目标int mid;while(l r){mid l((r-l)1);if(a[mid] t)l mid1;else if(a[mid] t)r mid-1;else{if(mida.size()-1 || a[mid1] t)return mid;l mid 1;}}return -1;}
};8 ms 7.8 MB 长按或扫码关注我的公众号一起加油、一起学习进步