程序员老鬼

成功从阿里正岗干到了外包

人在网上飘,哪有不挨刀。这句话我深有体会
本来我正在开心冲浪的时候,就发现一条无语的贴子:“成功从阿里正岗干到了外包,是什么水平”什么水平?儿子变女婿?那么我的评价是高水平。
Image
先来看看网友们怎么说的。有网友就跳出来了:“虽然你现在是外包了,但我还是对你有些失望的”倒反天罡了属于是。
Image
还有网友开始玩梗:“吃不到零食的水平”哈哈哈,这个梗是过不去了。
Image
更有网友龙王上身:“以外包身份重回阿里,这次你要拿回属于你的一切!”三年之前已到,然后歪嘴一笑。
Image
最后网友总结:“内卷的反义词是外包”从某种意义上来说,说的没错。
Image
看到楼主积极乐观的样子,就知道这不是什么大事。成为外包并不意味着能力的不足,再说了,就算是外包,那也是阿里的外包。那么你们觉得是什么水平呢?

下面是今日的大厂算法题

现在环境就这样,不管是大厂还是小厂的笔面试题都会考察算法,所以算法是你内卷路上不可或缺的模块。
下面是今日算法题,来自LeetCode的第50题:Pow(x, n),下面是我的算法思路及实现,让我们来看看吧。
算法题目
实现 pow(x, n),即计算 x 的 n 次幂函数(即,x^n)。
示例:
  • 输入: x = 2.00000, n = 10
  • 输出: 1024.00000
  • 输入: x = 2.10000, n = 3
  • 输出: 9.26100
  • 输入: x = 2.00000, n = -2
  • 输出: 0.25000
算法思路
实现幂函数时,可以通过递归的方式利用「分治法」,这种方法称为「快速幂」算法,具有对数时间复杂度。

快速幂算法的基本思想:

  1. 递归基础:如果 n = 0,任何数的 0 次幂都是 1。
  2. 偶数幂:如果 n 是偶数,我们可以将 x^n 写成 (x^(n/2))^2。
  3. 奇数幂:如果 n 是奇数,则 x^n = x * x^(n-1),此时 n-1 是偶数。

处理负幂:

如果 n 是负数,x^n = 1 / (x^(-n))。
代码实现
Go语言实现
func myPow(x float64, n int) float64 { if n == 0 { return 1 } if n < 0 { x = 1 / x n = -n } if n % 2 == 0 { half := myPow(x, n/2) return half * half } else { half := myPow(x, (n-1)/2) return half * half * x }}

Java实现

public double myPow(double x, int n) { long N = n; if (N < 0) { x = 1 / x; N = -N; } double ans = 1; double currentProduct = x; for (long i = N; i > 0; i /= 2) { if ((i % 2) == 1) { ans = ans * currentProduct; } currentProduct = currentProduct * currentProduct; } return ans;}

JavaScript实现

function myPow(x, n) { if (n === 0) return 1; if (n < 0) { x = 1 / x; n = -n; } return n % 2 === 0 ? myPow(x * x, n / 2) : x * myPow(x, n - 1);}

Python 代码实现

def myPow(x, n): if n == 0: return 1 if n < 0: x = 1 / x n = -n if n % 2 == 0: return myPow(x * x, n // 2) else: return x * myPow(x * x, (n - 1) // 2)

算法解析

  • 时间复杂度:O(log n)。由于每次递归 n 都会减半,因此总的递归层数是对数级别的。
  • 空间复杂度:O(log n)。递归的深度决定了空间复杂度。
示例和测试
以输入 x = 2.10000, n = 3 进行测试:
调用函数:
myPow(2.10000, 3)
返回值:
9.26100
此结果正确显示了 2.10000 的 3 次幂。
总结
快速幂算法提供了一种高效的方法来计算大数的幂,尤其是在涉及大量计算的科学计算和数据处理中非常实用。通过分治法和递归,快速幂能够在对数时间内完成计算,大大优化了性能。

我是何老师,一位AI创业者,擅长各类AI的深度玩法,通过AI工具实现3个月涨粉20w+。代表团队参加多场创新创业大赛,其中在成都和重庆联合举办的创新创业大赛中,凭借着团队出色的AI项目获得二等奖的好成绩,并成功当选当地青联委员。

Image

推荐阅读:

Image