1523 - Count Odd Numbers in an Interval Range (Easy)
Problem Link
https://leetcode.com/problems/count-odd-numbers-in-an-interval-range/
Problem Statement
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
Approach 1: Brute Force
Iterate from to and check if is odd.
func countOdds(low int, high int) int {
ans := 0
for i := low; i <= high; i += 1 {
ans += i & 1
}
return ans
}
impl Solution {
pub fn count_odds(low: i32, high: i32) -> i32 {
let mut ans = 0;
for i in low .. high + 1 {
ans += i & 1;
}
return ans;
}
}
Approach 2: Math
Numbers of odd numbers in is same as . Therefore, we just find out those two numbers to get the answer. There are odd numbers in and odd numbers in .
func countOdds(low int, high int) int {
return (high + 1) / 2 - (low / 2);
}
impl Solution {
pub fn count_odds(low: i32, high: i32) -> i32 {
return (high + 1) / 2 - (low / 2);
}
}