Welcome to Subscribe On Youtube

2595. Number of Even and Odd Bits

Description

You are given a positive integer n.

Let even denote the number of even indices in the binary representation of n (0-indexed) with value 1.

Let odd denote the number of odd indices in the binary representation of n (0-indexed) with value 1.

Return an integer array answer where answer = [even, odd].

 

Example 1:

 Input: n = 17 Output: [2,0] Explanation: The binary representation of 17 is 10001. It contains 1 on the 0th and 4th indices. There are 2 even and 0 odd indices. 

Example 2:

 Input: n = 2 Output: [0,1] Explanation: The binary representation of 2 is 10. It contains 1 on the 1st index. There are 0 even and 1 odd indices. 

 

Constraints:

  • 1 <= n <= 1000

Solutions

Solution 1: Enumerate

According to the problem description, enumerate the binary representation of $n$ from the low bit to the high bit. If the bit is $1$, add $1$ to the corresponding counter according to whether the index of the bit is odd or even.

The time complexity is $O(\log n)$ and the space complexity is $O(1)$. Where $n$ is the given integer.

  • class Solution { public int[] evenOddBit(int n) { int[] ans = new int[2]; for (int i = 0; n > 0; n >>= 1, i ^= 1) { ans[i] += n & 1; } return ans; } } 
  • class Solution { public: vector<int> evenOddBit(int n) { vector<int> ans(2); for (int i = 0; n > 0; n >>= 1, i ^= 1) { ans[i] += n & 1; } return ans; } }; 
  • class Solution: def evenOddBit(self, n: int) -> List[int]: ans = [0, 0] i = 0 while n: ans[i] += n & 1 i ^= 1 n >>= 1 return ans 
  • func evenOddBit(n int) []int { ans := make([]int, 2) for i := 0; n != 0; n, i = n>>1, i^1 { ans[i] += n & 1 } return ans } 
  • function evenOddBit(n: number): number[] { const ans = new Array(2).fill(0); for (let i = 0; n > 0; n >>= 1, i ^= 1) { ans[i] += n & 1; } return ans; } 
  • impl Solution { pub fn even_odd_bit(mut n: i32) -> Vec<i32> { let mut ans = vec![0; 2]; let mut i = 0; while n != 0 { ans[i] += n & 1; n >>= 1; i ^= 1; } ans } } 

All Problems

All Solutions