
题目链接3737. 统计主要元素子数组数目 I中等算法原理解法暴力枚举36ms击败74.74%时间复杂度O(N)由于此题的数据范围很小因此可以使用暴力枚举来解决1️⃣遍历每一个左端点2️⃣遍历右端点的同时计算这个 target 在这个数组中占据的比例3️⃣如果出现次数严格大于其长度的一半就属于“主要元素”统计个数 ret如何统计个数呢其实我们没必要单纯统计个数然后再和长度作比而是出现就1没出现就-1这样如果最后的计数0则说明是“主要元素”Java代码class Solution { //3737. 统计主要元素子数组数目 I public int countMajoritySubarrays(int[] nums, int target) { int nnums.length; int ret0; //遍历每一个左端点 for(int i0;in;i){ int cnt0; //遍历每一个右端点 for(int ji;jn;j){ //判断是否 target 在该子数组中出现的次数严格大于其长度的一半 cnt(nums[j]target?1:-1); if(cnt0) ret; } } return ret; } }