zoukankan      html  css  js  c++  java
  • 1342. Number of Steps to Reduce a Number to Zero

    package LeetCode_1342
    
    /**
     * 1342. Number of Steps to Reduce a Number to Zero
     * https://leetcode.com/problems/number-of-steps-to-reduce-a-number-to-zero/
     * Given a non-negative integer num, return the number of steps to reduce it to zero.
     * If the current number is even, you have to divide it by 2, otherwise, you have to subtract 1 from it.
    Example 1:
    Input: num = 14
    Output: 6
    Explanation:
    Step 1) 14 is even; divide by 2 and obtain 7.
    Step 2) 7 is odd; subtract 1 and obtain 6.
    Step 3) 6 is even; divide by 2 and obtain 3.
    Step 4) 3 is odd; subtract 1 and obtain 2.
    Step 5) 2 is even; divide by 2 and obtain 1.
    Step 6) 1 is odd; subtract 1 and obtain 0.
     * */
    class Solution {
        /*
        * solution: follow by:
        * If the current number is even, you have to divide it by 2, otherwise, you have to subtract 1 from it.
        * Time:O(logn), Space:O(1)
        * */
        fun numberOfSteps(num: Int): Int {
            var result = 0
            var n = num
            while (n != 0) {
                if (n % 2 == 0) {
                    n /= 2
                } else {
                    n -= 1
                }
                result++
            }
            return result
        }
    }
  • 相关阅读:
    做汉堡(续)
    做汉堡
    <构建之法>3-5章感想
    《构建之法》1-2章感想
    四则运算界面练习
    快速排序
    冒泡算法(思路1)
    希尔排序
    KMP算法
    1、基础算法题
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/13983143.html
Copyright © 2011-2022 走看看