Description
Given two non-negative integers low and high. Return the count of odd numbers between low and high (inclusive).
Example 1:
Input: low = 3, high = 7 Output: 3 Explanation: The odd numbers between 3 and 7 are [3,5,7].
Example 2:
Input: low = 8, high = 10 Output: 1 Explanation: The odd numbers between 8 and 10 are [9].
Constraints:
<li><code>0 <= low <= high <= 10^9</code></li>
Solutions
Solution 1: Prefix Sum Concept
We know that the count of odd numbers in the range [0, x] is \lfloorx+1⁄2\rfloor. Therefore, the count of odd numbers in the range [low, high] is \lfloorhigh+1⁄2\rfloor - \lfloorlow⁄2\rfloor.
The time complexity is O(1), and the space complexity is O(1).
PythonJavaC++GoTypeScriptRustPHPC
class Solution: def countOdds(self, low: int, high: int) -> int: return ((high + 1) >> 1) - (low >> 1)(code-box)
