338. Counting Bits

338. Counting Bits

  • 題目描述:Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate the number of 1’s in their binary representation and return them as an array.

    Example:
    For num = 5 you should return [0,1,1,2,1,2].

  • 題目大意:給定一個數字,找出0到這個數字之前每個數中二進制中1的個數,存放到數組中,並返回

  • 思路:1的個數等於除了最低位1的個數加上最低位1的個數

  • 代碼

    package DP;
    
    /**
    * @author OovEver
    * 2018/1/3 16:40
    * 1的個數等於除了最低位1的個數加上最低位1的個數
    */
    public class LeetCode338 {
      public int[] countBits(int num) {
          int[] res = new int[num + 1];
          res[0] = 0;
          for(int i=1;i<num+1;i++) {
              res[i] = res[i / 2] + i % 2;
          }
          return res;
      }
    }
    
發佈了207 篇原創文章 · 獲贊 69 · 訪問量 39萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章