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. 最长的美好子字符串(分治)

快乐水题1342. 将数字变成 0 的操作次数

leetcode中等剑指 Offer 56 数组中数字出现的次数

leetcode中等剑指 Offer 56 数组中数字出现的次数