有序转化数组(LeetCode)

题目

给你一个已经排好序 的整数数组 和整数 。对于数组中的每一个元素 ,计算函数值 ,请 按升序返回数组

解题

在时间复杂度为解决问题

python 复制代码
def sortTransformedArray(nums, a, b, c):
    def f(x):
        return a * x * x + b * x + c

    n = len(nums)
    result = [0] * n
    left, right = 0, n - 1
    index = n - 1 if a >= 0 else 0

    while left <= right:
        left_val = f(nums[left])
        right_val = f(nums[right])

        if a >= 0:
            if left_val > right_val:
                result[index] = left_val
                left += 1
            else:
                result[index] = right_val
                right -= 1
            index -= 1
        else:
            if left_val < right_val:
                result[index] = left_val
                left += 1
            else:
                result[index] = right_val
                right -= 1
            index += 1

    return result


nums = [-4, -2, 2, 4]
a, b, c = 1, 3, 5
print(sortTransformedArray(nums, a, b, c))

nums = [-4, -2, 2, 4]
a, b, c = -1, 3, 5
print(sortTransformedArray(nums, a, b, c))

3, 9, 15, 33

-23, -5, 1, 7

相关推荐
励志要当大牛的小白菜27 分钟前
ART配对软件使用
开发语言·c++·qt·算法
qq_5139704430 分钟前
力扣 hot100 Day56
算法·leetcode
PAK向日葵1 小时前
【算法导论】如何攻克一道Hard难度的LeetCode题?以「寻找两个正序数组的中位数」为例
c++·算法·面试
爱装代码的小瓶子3 小时前
数据结构之队列(C语言)
c语言·开发语言·数据结构
爱喝矿泉水的猛男4 小时前
非定长滑动窗口(持续更新)
算法·leetcode·职场和发展
YuTaoShao4 小时前
【LeetCode 热题 100】131. 分割回文串——回溯
java·算法·leetcode·深度优先
YouQian7724 小时前
Traffic Lights set的使用
算法
go54631584656 小时前
基于深度学习的食管癌右喉返神经旁淋巴结预测系统研究
图像处理·人工智能·深度学习·神经网络·算法
aramae6 小时前
大话数据结构之<队列>
c语言·开发语言·数据结构·算法
大锦终6 小时前
【算法】前缀和经典例题
算法·leetcode