·1523 找出奇数
给你两个非负整数 low 和 high 。请你返回 low 和 high 之间(包括二者)奇数的数目。
示例 1:
输入:low = 3, high = 7
输出:3
解释:3 到 7 之间奇数数字为 [3,5,7] 。
示例 2:
输入:low = 8, high = 10
输出:1
解释:8 到 10 之间奇数数字为 [9] 。
·解题思路
1.先判断low是不是奇数
2.最大范围不可以超过high
————错误————
上述的测试代码需要太大的内存,所以要改一下思路。根据边界条件判断个数
1.若是两边都是奇数,num = (high - low) / 2 + 1
2.一边为奇数,一边为偶数,num = (high - low - 1) / 2) + 1
3.两边均为偶数,num = (high - low) / 2
·代码:
class Solution(object):
def countOdds(self, low, high):
num = 0
if low % 2 != 0 and high % 2 != 0:
num = int((high - low) / 2 + 1)
return num
elif low % 2 != 0 or high % 2 != 0:
num = int((high - low - 1) / 2) + 1
return num
else:
num = int((high - low) / 2)
return num