비감소순으로 정렬된 정수 배열 A가 주어지면, 역시 비감소순으로 정렬된 각 숫자의 제곱으로 구성된 새 배열을 반환합니다. 오늘은 에디터가 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!