600 Non-negative Integers without Consecutive Ones

1. Question

Given a positive integer n, find the number of non-negative integers less than or equal to n, whose binary representations do NOT contain consecutive ones.

Example 1:

Input:
5

Output:
5

Explanation:

Here are the non-negative integers <= 5 with their corresponding binary representations:
0 : 0
1 : 1
2 : 10
3 : 11
4 : 100
5 : 101
Among them, only integer 3 disobeys the rule (two consecutive ones) and the other 5 satisfy the rule.

Note:1 <= n <= 109

2. Implementation

(1) DP

思路: 详细解析可以参考 https://leetcode.com/problems/non-negative-integers-without-consecutive-ones/discuss/103749/Java-Solution-DP, 下次再刷的时候需要进一步理解这题

3. Time & Space Complexity

DP: 时间复杂度O(n), 空间复杂度O(n)

Last updated

Was this helpful?