原创

[百战LeetCode][33.数组中出现次数超过一半的数字]


==========================努力奋斗财源广进==========================

一、算法题目

给一个长度为 n 的数组,数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。

1、我的题解

public class Solution {
    public int MoreThanHalfNum_Solution(int [] array) {
        int candidate = array[0];
        int count = 1;
        int length = array.length;
        for(int i = 1; i < length; i++)
        {
            if(array[i] == candidate)
            {
                count++;
            }
            else
            {
                count--;
            }
            if(count == 0)
            {
                candidate = array[i+1];
                count++;
            }
        }
        return candidate;
          
    }
}

2、优秀题解

//待定

三、解法心得

四、自我监督

评论区记录复习记录

  • 作者:北斗七点半联系作者
  • 发表时间:2022-12-05 21:43
  • 版权声明:禁止转载
  • 非公众号转发
  • 评论