PHPで順序付き配列の2乗を実装する方法

醉折花枝作酒筹
リリース: 2023-03-11 10:58:01
転載
2058 人が閲覧しました

非降順でソートされた整数の配列 A を指定すると、各数値の 2 乗で構成される新しい配列が返されます。これも非降順でソートする必要があります。今回は、PHPで順序配列の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 サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:hxd.life
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート