0
点赞
收藏
分享

微信扫一扫

1342. 将数字变成 0 的操作次数

滚蛋吧,2021

给你一个非负整数 num ,请你返回将它变成 0 所需要的步数。 如果当前数字是偶数,你需要把它除以 2 ;否则,减去 1 。

在这里插入图片描述


初级模拟 无任何技巧

在这里插入图片描述

class Solution {
    public int numberOfSteps(int num) {
        int count=0;
        while(num!=0){
            count++;
            if(num%2==1){
                num=num-1;
            }else{
                num=num/2;
            }
        }
        return count;
    }
}

三叶大神的精简版

算法也就图一乐,真题姐还得看三叶

原文链接:https://leetcode-cn.com/problems/number-of-steps-to-reduce-a-number-to-zero/solution/gong-shui-san-xie-note-bie-pian-yi-ti-sh-85fb/
在这里插入图片描述

class Solution {
    public int numberOfSteps(int num) {
        int ans = 0;
        while (num != 0 && ++ans >= 0) num = num % 2 == 0 ? num / 2 : num - 1;
        return ans;
    }
}


# 注释解释版
class Solution {
    public int numberOfSteps(int num) {
        int ans = 0;	//计数
        while (num != 0 && ++ans >= 0){
			num = [   num % 2 == 0 ? num / 2 : num - 1   ]   ;   
			# num=中括号一堆
			# 三元运算符ABC,通过条件A,执行B,反之C			     
        } 
        return ans;
    }
}

举报

相关推荐

0 条评论