面试官最爱挖的“数学陷阱”:有序转数组(Sort Transformed Array)为什么很多人第一眼就做错了?
作者:Echo_Wish
前段时间在做算法面试辅导的时候,有位同学给我发来一道题:
给定一个已经升序排列的数组 nums,以及一个二次函数 f(x)=ax²+bx+c。
请将数组中的每个元素经过函数变换后,返回一个新的升序数组。
例如:
nums = [-4,-2,2,4] a = 1 b = 3 c = 5经过变换:
f(-4)=9 f(-2)=3 f(2)=15 f(4)=33结果:
[3,9,15,33]很多人看到这里会说:
“这不简单吗?全部计算出来再排序。”
当然能做。
但如果这是面试题,你大概率拿不到高分。
因为这道题真正考察的,不是排序。
而是:
你是否理解二次函数的几何特性,并将其转化为双指针思想。
这才是这道题最有价值的地方。