zoukankan      html  css  js  c++  java
  • 剑指offer:数组中出现次数超过一半的数字

    题目描述

    数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。
    示例1

    输入

    [1,2,3,2,2,2,5,4,2]

    返回值

    2

    class Solution {
    public:
        int MoreThanHalfNum_Solution(vector<int> numbers) {
            if(numbers.size()<=0) return 0;
            if(numbers.size()==1) return numbers[0];
            int flag = 1;
            int index = -1;
            int max = 0;
            for(int i=0;i<numbers.size()-1;i++){
                if(numbers[i] == numbers[i+1]){
                    flag++;
                    if(flag > max&&flag>1)
                        index = i;
                }else{
                    flag = 0;
                }
            }
            if(index == -1)
                return 0;
            else
                return numbers[index];
        }
    };
    public class Solution {
        public int MoreThanHalfNum_Solution(int [] array) {
            if(array.length == 0) return 0;
            if(array.length == 1) return array[0];
            int flag = -1;
            for(int i=0;i<array.length-1;i++){
                if(array[i] != array[i+1]){
                    i++;
                }else{
                    flag = i;
                }
            }
            if(flag == -1)
                return 0;
            else
                return array[flag];
        }
    }
  • 相关阅读:
    使用Docker及k8s启动logstash服务
    在kubernetes上部署zookeeper,kafka集群
    k8s configmap 挂载配置文件
    k8s 安装 rabbitMQ 单机版
    aws 挂载efs (nfs)目录
    长白山游记
    RedHat 安装YUM软件
    mysql查询案例
    mysql子查询
    mysql联合查询
  • 原文地址:https://www.cnblogs.com/ttzz/p/13900366.html
Copyright © 2011-2022 走看看