• 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
        }
    }
  • 相关阅读:
    POJ 1936 All in All
    POJ 2305 Basic remains
    POJ 2081 Recaman's Sequence
    MFC MDI 窗口函数执行顺序
    decompose
    不新建一个文档
    code mistake
    ...
    paper
    stereo
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/13983143.html
Copyright © 2020-2023  润新知