找出数组中出现次数大于n/2的元素
找出数组中出现次数大于n/2的元素
Iter_迟cH1 发表于1年前
找出数组中出现次数大于n/2的元素
  • 发表于 1年前
  • 阅读 18
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

public class Solution {
    public int majorityElement(int[] nums) {
        int temp = 0;
        int count = 0;
        for(int i=0;i<nums.length;i++){
            if(count == 0){
                temp = nums[i];
                count++;
            }
            else{
                if(temp == nums[i]){
                    count++;
                }
                else{
                    count--;
                }
            }
        }
        return temp;
    }
}

采用两两抵消的方法,设置一个计数器count。首先令temp等于第一次元素,count为1,如果下一个元素和temp相等,则count++,如果不相等,则count--。如果count等于0,那么temp重新赋值为下一个元素,重复上面的步骤。直到遍历完数组,则剩下的temp一定是数组中出现次数大于n/2的元素。

共有 人打赏支持
粉丝 0
博文 17
码字总数 4377
×
Iter_迟cH1
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: