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
        }
    }
  • 相关阅读:
    爬虫大作业
    数据结构化与保存
    使用正则表达式,取得点击次数,函数抽离
    爬取校园新闻首页的新闻
    网络爬虫基础练习
    综合练习:词频统计
    Hadoop综合大作业
    理解MapReduce
    熟悉HBase基本操作
    熟悉常用的HBase操作
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/13983143.html
Copyright © 2011-2022 走看看