Count Odd Numbers in an Interval Range
Problem Description​
Given two non-negative integers low and high. Return the count of odd numbers between low and high (inclusive).
Examples​
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
Solution for Counting Odd Numbers in an Interval Range​
Brute Force Approach​
The brute force approach involves iterating through each number between low and high and counting how many of these numbers are odd.
Code in Different Languages​
- C++
- Java
- Python
class Solution {
public:
int countOdds(int low, int high) {
int count = 0;
for (int i = low; i <= high; ++i) {
if (i % 2 != 0) {
count++;
}
}
return count;
}
};
class Solution {
public int countOdds(int low, int high) {
int count = 0;
for (int i = low; i <= high; ++i) {
if (i % 2 != 0) {
count++;
}
}
return count;
}
}
class Solution:
def countOdds(self, low: int, high: int) -> int:
count = 0
for i in range(low, high + 1):
if i % 2 != 0:
count += 1
return count
Complexity Analysis​
- Time Complexity: , where is the number of integers between
lowandhigh. This is because we iterate through each number in the range. - Space Complexity: . We use a constant amount of extra space for the counter variable.
Optimized Approach​
A more efficient approach involves using simple arithmetic to calculate the count of odd numbers. If low and high are both even, we can count how many odd numbers are in the range by the formula:
- If both
lowandhighare even, the number of odd numbers is - If both
lowandhighare odd, the number of odd numbers is - Otherwise, the number of odd numbers is
Code in Different Languages​
- C++
- Java
- Python
class Solution {
public:
int countOdds(int low, int high) {
if (low % 2 == 0) low++;
if (high % 2 == 0) high--;
if (low > high) return 0;
return (high - low) / 2 + 1;
}
};
class Solution {
public int countOdds(int low, int high) {
if (low % 2 == 0) low++;
if (high % 2 == 0) high--;
if (low > high) return 0;
return (high - low) / 2 + 1;
}
}
class Solution:
def countOdds(self, low: int, high: int) -> int:
if low % 2 == 0:
low += 1
if high % 2 == 0:
high -= 1
if low > high:
return 0
return (high - low) // 2 + 1
Complexity Analysis​
- Time Complexity: , as it involves simple arithmetic operations.
- Space Complexity: , as we use a constant amount of extra space.
Authors:
Loading...