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

    题目描述

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

    示例

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

    返回值   2

    知识点回顾

     暴力轮询==

    代码

    # -*- coding:utf-8 -*-
    class Solution:
        def MoreThanHalfNum_Solution(self, numbers):
            # write code here
            lenth=len(numbers)//2
            for i in range(lenth+1):         //只需看从前半部分元素开始轮询,用flg记录轮询到的元素i出现次数
                flg=1
                for j in numbers[i+1:]:
                    if j==numbers[i]:
                        flg+=1
                while flg>lenth:             //超过一半时,输出元素i
                    return numbers[i]
            return 0
    #校验
    a=Solution() a.MoreThanHalfNum_Solution([2,2,2,2,2,1,3,4,5])
  • 相关阅读:
    01.Markdown学习
    微信小程序开发基础
    如何在本地搭建微信小程序服务器
    Golang | 报错
    Golang | 扩展
    Golang | 基础
    Golang | 基础
    Golang | 基础
    Chrome——书签同步码云
    Rustlings_structs
  • 原文地址:https://www.cnblogs.com/foolangirl/p/14026827.html
Copyright © 2011-2022 走看看