1342. 将数字变成 0 的操作次数 - 力扣(LeetCode)



可以使用一个简单的循环来实现这个功能,代码如下:
def number_of_steps(num: int) -> int:
steps = 0
while num > 0:
if num % 2 == 0:
num //= 2
else:
num -= 1
steps += 1
return steps
# 示例
print(number_of_steps(14)) # 输出 6
print(number_of_steps(8)) # 输出 4
print(number_of_steps(123)) # 输出 12
解析:
-
如果
num是偶数,则num //= 2。 -
如果
num是奇数,则num -= 1。 -
每次操作计数
steps加一,直到num变为0。 -
返回
steps即所需的步数。
这个方法的时间复杂度是 O(logn) ,因为每次偶数都被除以 2,最多进行大约 log2(n)次操作。
300

被折叠的 条评论
为什么被折叠?



