Heim  >  Artikel  >  Backend-Entwicklung  >  So erstellen Sie ein Produktarray ohne das aktuelle Element in PHP (Code im Anhang)

So erstellen Sie ein Produktarray ohne das aktuelle Element in PHP (Code im Anhang)

不言
不言nach vorne
2018-09-30 16:02:163138Durchsuche

Der Inhalt dieses Artikels handelt davon, wie man ein Produktarray ohne das aktuelle Element in PHP erstellt (mit Code). Ich hoffe, dass es für Sie hilfreich ist.

Erstellen Sie ein Produktarray
Gegebenes Array A[0,1,...,n-1], konstruieren Sie bitte ein Array B[0,1,...,n-1], Darunter das Element B[i] in B=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1] . Division kann nicht verwendet werden.

1. Die Bedeutung dieser Frage ist, dass die Elemente von Array B das Produkt aller Elemente in Array A sind, das aktuelle Element jedoch ausgeschlossen werden muss
2. Array A ist in zwei Teile geteilt die linke und rechte Seite des Elements i und sie werden separat multipliziert
3. Das linke Array ist A[0]...A[n-1], das rechte Array ist A[1]...A[n ]
4. Kombinieren Sie ein neues Array

$A=array(1,2,3,4);
multiply($A);
function multiply($numbers){
        $len=count($numbers);
        $res=array();
        //1. 组合左边数组
        $left=array();
        $left[0]=1;
        for($i=1;$i<$len;$i++){
                $left[$i]=$left[$i-1]*$numbers[$i-1];
        }   

        //2. 组合右边数组
        $right=array();
        $right[$len-1]=1;
        for($j=$len-2;$j>=0;$j--){
                $right[$j]=$right[$j+1]*$numbers[$j+1];
        }   

        //3. 组合新数组,整好可以实现A[0]*A[i-1]*A[i+1]*A[n-1]排除当前i元素
        for($i=0;$i<$len;$i++){
                $res[$i]=$left[$i]*$right[$i];
        }   
        return $res;
}

Das obige ist der detaillierte Inhalt vonSo erstellen Sie ein Produktarray ohne das aktuelle Element in PHP (Code im Anhang). 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