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])
  • 相关阅读:
    学习进度14
    计算最长英语单词链
    梦断代码阅读笔记02
    梦断代码阅读笔记01
    学习进度13
    评价输入法
    课堂测试——找水王
    第二阶段冲刺05
    实验2
    实验 1 Linux 系统的安装和常用命令
  • 原文地址:https://www.cnblogs.com/foolangirl/p/14026827.html
Copyright © 2011-2022 走看看