非降順でソートされた整数の配列 A を指定すると、各数値の 2 乗で構成される新しい配列が返されます。これも非降順でソートする必要があります。今回は、PHPで順序配列の2乗を実現する方法を編集者が紹介しますので、必要な方は参考にしてください。
非降順でソートされた整数の配列 A を指定すると、同様に非降順でソートされた各数値の 2 乗で構成される新しい配列が返されます。
例 1:
输入:[-4,-1,0,3,10] 输出:[0,1,9,16,100]
例 2:
输入:[-7,-3,2,3,11] 输出:[4,9,9,49,121]
ソリューションのアイデア 1
組み込み関数ソリューション
コード
class Solution { /** * @param Integer[] $A * @return Integer[] */ function sortedSquares($A) { foreach ($A as &$item) { $item = $item * $item; } sort($A); return $A; }}
ソリューションのアイデア 2
ダブル ポインター トラバーサルと新しい配列の助けを借りて、平方計算後、結果は新しい配列に大きいものから小さいものへと配置されます。
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; }}
推奨学習:php ビデオ チュートリアル
以上がPHPで順序付き配列の2乗を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。