Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie die statistische Methode für Zahlen, die mehr als die Hälfte in einem Array in PHP erscheinen (Code)

So implementieren Sie die statistische Methode für Zahlen, die mehr als die Hälfte in einem Array in PHP erscheinen (Code)

不言
不言nach vorne
2018-10-13 14:58:262381Durchsuche

Der Inhalt dieses Artikels befasst sich mit der Implementierung der statistischen Methode (Code) von Zahlen, die mehr als die Hälfte der Male in einem Array in PHP vorkommen. Freunde in Not können sich darauf beziehen Ich hoffe, es wird Ihnen nützlich sein.

Es gibt eine Zahl im Array, die länger als die Hälfte der Länge des Arrays ist. Bitte finden Sie diese Zahl. Geben Sie beispielsweise ein Array {1,2,3,2,2,2,5,4,2} mit einer Länge von 9 ein. Da die Zahl 2 fünfmal im Array vorkommt, was mehr als der halben Länge des Arrays entspricht, wird 2 ausgegeben. Wenn es nicht existiert, geben Sie 0 aus.

Zwei Möglichkeiten:

1. Definieren Sie ein neues Array arr, durchlaufen Sie das Array und weisen Sie arr Werte zu, arr[element] = die Anzahl der Vorkommen
2 , nehmen Sie den ersten Schlüssel und Wert, Schlüssel ist das Zielelement und Wert ist die Anzahl der Vorkommen. Nach der Überprüfung wird
3 zurückgegeben. Ein neues Array wird im Raum erstellt 🎜>

1. Definieren Sie die Variable e, die am häufigsten vorkommt. Verwenden Sie

2, um das aktuelle Element zu vergleichen , unterschiedliche Anzahl – wenn die Anzahl 0 ist, deckt das aktuelle Element e ab.
3 Durchlaufen Sie das Array, um zu überprüfen, ob e mehr als die Hälfte der Zeit auftritt.
4 )

e,count=1
for i=1;i<arr.length;i++
    if arr[i]==e
        count++
    else
        count--
    if count==0
        e=arr[i]
        count=1
count=0
for i=0;i<arr.length;i++
    if arr[i]==e
        count++
if count*2>arr.length
    return e
<?php
$arr=array(1,2,3,2,2,2,5,4,2);
$e=MoreThanHalfNum_Solution($arr);
var_dump($e);

function MoreThanHalfNum_Solution($numbers){
        $arr=$numbers;
        $e=$arr[0];
        $count=1;
        $length=count($arr);
        for($i=1;$i<$length;$i++){
                if($arr[$i]==$e){
                        $count++;
                }else{
                        $count--;
                }   

                if($count==0){
                        $e=$arr[$i];
                        $count=1;
                }   
        }   
        $count=0;
        for($i=0;$i<$length;$i++){
                if($arr[$i]==$e){
                        $count++;
                }   
        }   
        if($count*2>$length){
                return $e; 
        }   
        return 0;

}

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die statistische Methode für Zahlen, die mehr als die Hälfte in einem Array in PHP erscheinen (Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen