PHP에서 순서 배열의 제곱을 구현하는 방법

醉折花枝作酒筹
풀어 주다: 2023-03-11 10:58:01
앞으로
2057명이 탐색했습니다.

비감소순으로 정렬된 정수 배열 A가 주어지면, 역시 비감소순으로 정렬된 각 숫자의 제곱으로 구성된 새 배열을 반환합니다. 오늘은 에디터가 PHP에서 순서배열의 제곱을 구현하는 방법을 소개하겠습니다. 필요하시면 참고하시면 됩니다.

PHP에서 순서 배열의 제곱을 구현하는 방법

비감소순으로 정렬된 정수 배열 A가 주어지면, 역시 비감소순으로 정렬된 각 숫자의 제곱으로 구성된 새 배열을 반환합니다.

예 1:

输入:[-4,-1,0,3,10]
输出:[0,1,9,16,100]
로그인 후 복사

예 2:

输入:[-7,-3,2,3,11]
输出:[4,9,9,49,121]
로그인 후 복사

문제 해결 아이디어 1

내장 기능 솔루션

Code

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

문제 해결 아이디어 2

이중 포인터 탐색 , 동시에 new Array의 도움으로 제곱을 계산한 후 결과를 가장 큰 것부터 가장 작은 것 순으로 새 배열에 넣습니다.

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에서 순서 배열의 제곱을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
php
원천:hxd.life
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿