Java教程

有序数组的平方

本文主要是介绍有序数组的平方,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

有序数组的平方

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

示例 1: 输入:nums = [-4,-1,0,3,10] 输出:[0,1,9,16,100] 解释:平方后,数组变为 [16,1,0,9,100],排序后,数组变为 [0,1,9,16,100]

示例 2: 输入:nums = [-7,-3,2,3,11] 输出:[4,9,9,49,121]

双指针法

package main

func sortedSquares(nums []int) []int {
   n:=len(nums)
   k,j:=len(nums)-1,len(nums)-1
   i:=0
   result:=make([]int,n)
   for i<=j{
      if(nums[i]*nums[i]<nums[j]*nums[j]){
         result[k]=nums[j]*nums[j]
         j--
         k--
      }else {
         result[k]=nums[i]*nums[i]
         i++
         k--
      }

   }
   return result
   
}

func main()  {
   a:=[]int{-4,-1,0,3,10}
   var fd []int
   fd=sortedSquares(a)
   println(fd[0],fd[1],fd[2],fd[3],fd[4])
}
这篇关于有序数组的平方的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!