首页 > 其他分享 >【数组】——有序数组的平方

【数组】——有序数组的平方

时间:2023-02-07 21:46:36浏览次数:34  
标签:平方 数组 nums int List 有序 指针 size

【数组】——有序数组的平方

暴力解法:先平方后排序

时间复杂度\(O(n+nlogn)=O(nlogn)\)

# 力扣运行出错,但测试可用
class Solution(object):
    def sortedSquares(self, nums):
        """
        :type nums: List[int]
        :rtype: List[int]
        """
        i=0
        size=len(nums)
        # 平方
        while i<size:
            nums[i]=nums[i] ** 2
            i+=1
        # 冒泡排序
        for j in range(len(nums)-1):
            for k in range(len(nums)-j-1):
                if nums[k] > nums[k + 1]:
                    nums[k], nums[k + 1] = nums[k + 1], nums[k]
        return nums

双指针法:
1.设置起始指针i和终止指针j,新建B数组和指向B数组终止位置的指针k
2.比较i和j元素大小,大的放入k元素位置,该i(j)指针和k指针继续移动
3.结束条件为i<=j!
时间复杂度为\(O(n)\)

class Solution(object):
    def sortedSquares(self, nums):
        """
        :type nums: List[int]
        :rtype: List[int]
        """
        size=len(nums)
        i,j,k=0,size-1,size-1
        res=[-1]*size

        while i<=j:
            if nums[i]**2 < nums[j]**2:
                res[k]=nums[j]**2
                j-=1
            else:  						# 注意,只有两种情况,不需要用elif另外判断(不是很明白)
                res[k]=nums[i]**2
                i+=1
            k-=1
        return res

标签:平方,数组,nums,int,List,有序,指针,size
From: https://www.cnblogs.com/z-qhhh/p/17099767.html

相关文章

  • 数组拷贝及排序
    packagecom.test;importjava.util.*;importstaticjava.util.Arrays.fill;publicclassMain{publicstaticvoidmain(String[]args){int[]a=ne......
  • [数组]——移除元素
    【数组】——移除元素由于数组的存储空间是连续的,不能直接删除元素,只能覆盖暴力解法:1.获得数组长度2.开始第一层循环,寻找要删除的元素(遍历数组元素)3.寻找到删除元素,开......
  • java 二维数组
      一个[代表是一维数组,I代表是int型,@后面跟的是地址; ......
  • Vue中操作数组的七个函数
    1.push()//向数组的末尾添加一个或者多个元素,并返回新的长度2.pop()//删除并返回数组的最后一个元素3.shift()//删除并返回数组的第一个元素4......
  • 26-稀疏数组
    0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0......
  • PHP对数组的高级遍历和操作处理方法
    PHP对数组的处理可以称为该语言最有吸引力的特性之一,它支持70多种数组相关的函数。不论你想翻转一个数组、判断某个值在数组中是否存在、将数组转换成一个字符串还是计算数......
  • 1.6 通过地址和索引实现数组
    CPU把基址寄存器+变址寄存器的值解释为实际查看的内存地址。变址寄存器的值就相当于高级编程语言程序中数组的索引功能。数组是指同样长度的数据在内存中进行连续排列的数......
  • PHP数组使用、特性、函数的总结
    包含其他数组的数组成为多维数组关联数组(即非数字索引数组)使用更有意义的数据作为数组的索引1、数组索引数组$products = array(‘a’, ‘b’, ‘c’);//就像一个......
  • 数组扩容与数组拷贝
    前言在上一篇文章中,千锋壹哥给大家讲解了数组的创建、初始化及遍历方式,这些是我们学习数组的基础。其实数组的内容非常多,今天这篇文章,千锋壹哥主要带大家学习数组的扩容、......
  • 数组的find方法 ES6 230207
    数组的find方法接收一个方法体方法体收一个参数这个参数作为数组的成员返回一个布尔值如果布尔值的结果为真那么查找成功并中止继续下一个成员的查找......