要求
给你两个非负整数 low 和 high 。请你返回 low 和 high 之间(包括二者)奇数的数目。
示例 1:
输入:low = 3, high = 7
输出:3
解释:3 到 7 之间奇数数字为 [3,5,7] 。
示例 2:
输入:low = 8, high = 10
输出:1
解释:8 到 10 之间奇数数字为 [9] 。
提示:
- 0 <= low <= high <= 10^9
核心代码
class Solution:
def countOdds(self, low: int, high: int) -> int:
if (high - low) % 2 == 1:
return (high - low) // 2 + 1
else:
ans = (high - low) // 2
ans += 1 if high % 2 == 1 and low % 2 == 1 else 0
return ans
解题思路:比较简单的一道题,不过我们需要分奇数和偶数两种,奇数的话,必然是一个奇数在头或者尾,最后结果直接是一半加1,如果是偶数的话,我们需要判断是不是奇数开头和结尾,是的话我们需要加上1,不是的话,我们不用管。