来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/squares-of-a-sorted-array 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。

解答

  1. /**
  2. * @param {number[]} nums
  3. * @return {number[]}
  4. */
  5. var sortedSquares = function(nums) {
  6. let start = 0, end = nums.length - 1, k = nums.length - 1;
  7. let ret = new Array(nums.length);
  8. while (start <= end) {
  9. let startVal = Math.pow(nums[start], 2);
  10. let endVal = Math.pow(nums[end], 2);
  11. if (startVal < endVal) {
  12. ret[k] = endVal;
  13. --end;
  14. } else {
  15. ret[k] = startVal;
  16. ++start;
  17. }
  18. --k;
  19. }
  20. return ret;
  21. };