Leetcode-1523. 在区间范围内统计奇数数目

题目:

给你两个非负整数 lowhigh 。请你返回lowhigh之间(包括二者)奇数的数目。

示例 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

第一种方法,直接判断奇数偶数,是奇数,计数器++;

java 复制代码
class Solution {
    public int countOdds(int low, int high) {

    int cnt = 0;

    if(low%2!=0){
        while(low<=high){
            cnt++;
            low+=2;
        }
    }
    if(low%2==0){
        low++;
        while(low<=high){
            cnt++;
            low+=2;
        }
    }
    
    return cnt;
    }
}

第二种,列出所有情况,high-low=0;low奇,high偶;high奇,low偶;low、high全奇全偶。

java 复制代码
class Solution {
    public int countOdds(int low, int high) {
        int cnt = 0;
        if(high-low==0){
            if(low%2==0)return cnt;
            return cnt+1;
        }
        if(low%2==0&&high%2==0){
            cnt+=(high-low)/2;
        }else if(low%2!=0&&high%2!=0){
            cnt+=((high-low)/2+1);
        }else{
            cnt+=(high-low+1)/2;
        }
        return cnt;
    }
}

第三种,一行代码秒杀!

java 复制代码
class Solution {
    public int countOdds(int low, int high) {
        return (high+1)/2 - low/2;
    }
}
相关推荐
J_liaty6 分钟前
Spring Boot + MinIO 文件上传工具类
java·spring boot·后端·minio
踩坑记录6 分钟前
leetcode hot100 21.合并两个有序链表 链表 easy
leetcode
啊阿狸不会拉杆7 分钟前
《数字信号处理 》第 7 章-无限长单位冲激响应 (IIR) 数字滤波器设计方法
数据结构·算法·信号处理·数字信号处理·dsp
2601_9496130210 分钟前
flutter_for_openharmony家庭药箱管理app实战+药品详情实现
java·前端·flutter
IT_Octopus11 分钟前
力扣热题100 20. 有效的括号
算法·leetcode
木井巳13 分钟前
【递归算法】求根节点到叶节点数字之和
java·算法·leetcode·深度优先
没有bug.的程序员16 分钟前
Spring Boot 事务管理:@Transactional 失效场景、底层内幕与分布式补偿实战终极指南
java·spring boot·分布式·后端·transactional·失效场景·底层内幕
想进个大厂17 分钟前
代码随想录day29 贪心03
算法·leetcode·职场和发展
华农第一蒟蒻24 分钟前
一次服务器CPU飙升的排查与解决
java·运维·服务器·spring boot·arthas
m0_7482299932 分钟前
帝国CMS后台搭建全攻略
java·c语言·开发语言·学习