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

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

醉折花枝作酒筹
Libérer: 2023-03-11 10:58:01
avant
2095 Les gens l'ont consulté

É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]
Copier après la connexion

Exemple 2 :

输入:[-7,-3,2,3,11]
输出:[4,9,9,49,121]
Copier après la connexion

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;
    }}
Copier après la connexion

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;
    }}
Copier après la connexion

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!

Étiquettes associées:
php
source:hxd.life
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal