É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.
É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!