Class Solution
-
- All Implemented Interfaces:
public final class Solution3621 - Number of Integers With Popcount-Depth Equal to K I.
Hard
You are given two integers
nandk.For any positive integer
x, define the following sequence:<code>p<sub>0</sub> = x</code>
<code>p<sub>i+1</sub> = popcount(p<sub>i</sub>)</code> for all
i >= 0, wherepopcount(y)is the number of set bits (1's) in the binary representation ofy.
This sequence will eventually reach the value 1.
The popcount-depth of
xis defined as the smallest integerd >= 0such that <code>p<sub>d</sub> = 1</code>.For example, if
x = 7(binary representation"111"). Then, the sequence is:7 → 3 → 2 → 1, so the popcount-depth of 7 is 3.Your task is to determine the number of integers in the range
[1, n]whose popcount-depth is exactly equal tok.Return the number of such integers.
Example 1:
Input: n = 4, k = 1
Output: 2
Explanation:
The following integers in the range
[1, 4]have popcount-depth exactly equal to 1:Thus, the answer is 2.
Example 2:
Input: n = 7, k = 2
Output: 3
Explanation:
The following integers in the range
[1, 7]have popcount-depth exactly equal to 2:Thus, the answer is 3.
Constraints:
<code>1 <= n <= 10<sup>15</sup></code>
0 <= k <= 5
-
-
Constructor Summary
Constructors Constructor Description Solution()
-
Method Summary
Modifier and Type Method Description final LongpopcountDepth(Long n, Integer k)-
-
Method Detail
-
popcountDepth
final Long popcountDepth(Long n, Integer k)
-
-
-
-