1. 程式人生 > 實用技巧 >JavaScript實現基於物件的雙端佇列

JavaScript實現基於物件的雙端佇列

// class Solution {
//     public int[] countBits(int num) {
//         int[] res = new int[num + 1];
//         res[0] =  0;
//         for(int i = 1;i<res.length;i++){
//             if(i % 2 == 1){
//                 res[i] = res[i-1] + 1;
//             }else{
//                 res[i] = res[i/2];
//             }
// } // return res; // } // } /* 1、如果 i 為偶數,那麼f(i) = f(i/2) ,因為 i/2 本質上是i的二進位制左移一位,低位補零,所以1的數量不變。 2、如果 i 為奇數,那麼f(i) = f(i - 1) + 1, 因為如果i為奇數,那麼 i - 1必定為偶數,而偶數的二進位制最低位一定是0, 那麼該偶數 +1 後最低位變為1且不會進位,所以奇數比它上一個偶數bit上多一個1,即 f(i) = f(i - 1) + 1。 */ class Solution{ public int[] countBits(int num){
int[] res = new int[num + 1]; for(int i = 1;i <= num;i++){ res[i] = res[i & (i - 1)] + 1; } return res; } }