LeetCode 1342 将数字变成0的操作次数[递归] HERODING的LeetCode之路
Posted HERODING23
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 1342 将数字变成0的操作次数[递归] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。
解题思路:
解决该题有两种解法,一种是直接递归,0的时候返回0,否则根据奇数偶数判断返回不同的递归操作,代码如下:
class Solution
public:
int numberOfSteps(int num)
if(num == 0) return 0;
return num % 2 == 0 ? numberOfSteps(num / 2) + 1 : numberOfSteps(num - 1) + 1;
;
循环的话思路是和递归一样的,只是表现方式不同,代码量稍大些,代码如下:
class Solution
public:
int numberOfSteps(int num)
int ans = 0;
while(num > 0)
if(num % 2 == 0)
num /= 2;
else num --;
ans ++;
return ans;
;
以上是关于LeetCode 1342 将数字变成0的操作次数[递归] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章
算法leetcode每日一练1342. 将数字变成 0 的操作次数
LeetCode 1342 将数字变成0的操作次数[递归] HERODING的LeetCode之路
LeetCode 884. 两句话中的不常见单词 / 1342. 将数字变成 0 的操作次数(计算二进制长度统计1的个数) / 1763. 最长的美好子字符串(分治)