1523. Count Odd Numbers in an Interval Range

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:

  • 0 <= low <= high <= 10^9

Solutions

Solution 1

Python Code
1
2
3
class Solution:
    def countOdds(self, low: int, high: int) -> int:
        return ((high + 1) >> 1) - (low >> 1)

Java Code
1
2
3
4
5
class Solution {
    public int countOdds(int low, int high) {
        return ((high + 1) >> 1) - (low >> 1);
    }
}

C++ Code
1
2
3
4
5
6
class Solution {
public:
    int countOdds(int low, int high) {
        return (high + 1 >> 1) - (low >> 1);
    }
};

Go Code
1
2
3
func countOdds(low int, high int) int {
	return ((high + 1) >> 1) - (low >> 1)
}

TypeScript Code
1
2
3
function countOdds(low: number, high: number): number {
    return ((high + 1) >> 1) - (low >> 1);
}

Rust Code
1
2
3
4
5
impl Solution {
    pub fn count_odds(low: i32, high: i32) -> i32 {
        ((high + 1) >> 1) - (low >> 1)
    }
}

PHP Code
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
class Solution {
    /**
     * @param Integer $low
     * @param Integer $high
     * @return Integer
     */
    function countOdds($low, $high) {
        return ($high + 1 >> 1) - ($low >> 1);
    }
}

C Code
1
2
3
int countOdds(int low, int high) {
    return ((high + 1) >> 1) - (low >> 1);
}