判断一个数是不是3的幂?你可能一直在“暴力解题”
判断一个数是不是3的幂?你可能一直在“暴力解题”
一、引子:你写的代码,可能已经“慢到没救了”
面试官问:
👉 “判断一个整数是不是 3 的幂。”
很多人第一反应:
一直除3,直到不能除为止听起来没问题,对吧?
但现实是——
👉 这段代码,在高频调用场景里,会慢得你怀疑人生。
更扎心的是:
这题其实可以做到 O(1),而你却写成了 O(log n)。
金句1:
👉算法题最可怕的不是不会,而是“以为会了”。
二、问题本质:什么是“3的幂”?
先别急着写代码,我们把问题讲清楚。
所谓 3 的幂,其实就是:
n = 3^k (k >= 0)比如:
1 = 3^0 3 = 3^1 9 = 3^2 27 = 3^3 ...本质上就是一句话:
👉这个数能被 3 连续整除,最终变成 1。
但问题来了——
这只是“现象”,
