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
        }
    }
  • 相关阅读:
    js作用域和作用域链
    js 预编译
    什么是匿名函数?
    js控制台显示[object Object]问题
    Freemarker常用内建函数
    java JSONObject转为map
    jQuery属性相关的操作
    基于jQuery的静态工具方法
    FreeMarker关于导入文件
    json数据的读取操作
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/13983143.html
Copyright © 2011-2022 走看看