Maison  >  Article  >  développement back-end  >  Comment implémenter un carré de tableau ordonné en PHP

Comment implémenter un carré de tableau ordonné en PHP

醉折花枝作酒筹
醉折花枝作酒筹avant
2021-07-08 15:46:131952parcourir

Étant donné un tableau A d'entiers triés par ordre non décroissant, renvoie un nouveau tableau composé du carré de chaque nombre, également trié par ordre non décroissant. Aujourd'hui, l'éditeur présentera la méthode d'implémentation du carré de tableau ordonné en PHP. Vous pouvez vous y référer si vous en avez besoin.

Comment implémenter un carré de tableau ordonné en PHP

Étant donné un tableau A d'entiers triés par ordre non décroissant, renvoie un nouveau tableau composé du carré de chaque nombre, également trié par ordre non décroissant.

Exemple 1 :

输入:[-4,-1,0,3,10]
输出:[0,1,9,16,100]

Exemple 2 :

输入:[-7,-3,2,3,11]
输出:[4,9,9,49,121]

Idée de résolution de problèmes 1

Solution de fonction intégrée

Code

class Solution {
    /** 
    * @param Integer[] $A 
    * @return Integer[] 
    */
    function sortedSquares($A) {
        foreach ($A as &$item) {
            $item = $item * $item;
        }
        sort($A);
        return $A;
    }}

Idée de résolution de problèmes 2

Parcours à double pointeur , En même temps, à l'aide du nouveau tableau, placez les résultats après avoir calculé le carré dans le nouveau tableau du plus grand au plus petit.

class Solution {
    /** 
    * 
    *
    * 2 为自乘 2 次,也是平方 
    * @param Integer[] $A 
    * @return Integer[] 
    */
    function sortedSquares($A) {
        $ans = [];
        $i = 0;
        $j = count($A) - 1;
        $k = count($A) - 1;
        while ($i <= $j) {
            // 原数组是有序的,所以 -$A[$i] > $A[$j] 即为 $A[$i] 的绝对值平方后更大 
            if (-$A[$i] > $A[$j]) {
                $ans[$k--] = $A[$i] ** 2;
                // 左指针向右移动
                
                $i++;
            } else {
                $ans[$k--] = $A[$j] ** 2;
                $j--;
            }
        }
        return $ans;
    }}

Apprentissage recommandé : Tutoriel vidéo php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer