zoukankan      html  css  js  c++  java
  • leetCode算法题(一)

    题目
    给你一个非负整数 num ,请你返回将它变成 0 所需要的步数。 如果当前数字是偶数,你需要把它除以 2 ;否则,减去 1
    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/number-of-steps-to-reduce-a-number-to-zero

    实例
    输入:num = 14
    输出:6
    解释:

    步骤 1) 14 是偶数,除以 2 得到 7 。
    步骤 2) 7 是奇数,减 1 得到 6 。
    步骤 3) 6 是偶数,除以 2 得到 3 。
    步骤 4) 3 是奇数,减 1 得到 2 。
    步骤 5) 2 是偶数,除以 2 得到 1 。
    步骤 6) 1 是奇数,减 1 得到 0 。

    var numberOfSteps  = function(num) {
      var step = 0
      while(num != 0){
        if (num % 2 === 0) {
          step ++
          num = num / 2
        }else {
          step ++
          num = num - 1
        }
      }
      return step

    思路

    此题目无法得知循环次数,但是可以根据条件判断,所以用了while循环,比较简单,可能会有一些别的性能比较高的解法,可以评论中交流一下。



  • 相关阅读:
    G
    ZOJ 3782
    23.内存池
    22.boost图模板
    21.boost Ford最短路径算法(效率低)
    20.boost dijkstra最短路径算法
    19.boost A*算法
    18.boost 图的拓扑排序
    17.广度优先遍历bfs
    16.boost图深度优先遍历DFS
  • 原文地址:https://www.cnblogs.com/PrayLs/p/12699285.html
Copyright © 2011-2022 走看看