当前位置: 首页 > news >正文

【Leetcode 每日一题】2595. 奇偶位数

问题背景

给你一个 整数 n n n
e v e n even even 表示在 n n n 的二进制形式(下标从 0 0 0 开始)中值为 1 1 1 的偶数下标的个数。
o d d odd odd 表示在 n n n 的二进制形式(下标从 0 0 0 开始)中值为 1 1 1 的奇数下标的个数。
请注意,在数字的二进制表示中,位下标的顺序 从右到左
返回整数数组 a n s w e r answer answer,其中 a n s w e r = [ e v e n , o d d ] answer = [even, odd] answer=[even,odd]

数据约束

  • 1 ≤ n ≤ 1000 1 \le n \le 1000 1n1000

解题过程

二进制相关的问题,基本都可以用移位遍历的思路来解决,但是通常也会有不需要循环的骚操作,权当长见识吧。

具体实现

移位遍历

class Solution {

    public int[] evenOddBit(int n) {
        int[] res = new int[2];
        for (int i = 0; n > 0; n >>= 1) {
            res[i] += n & 1;
            // 0 和 1 之间可以通过异或 1 的操作相互转换
            i ^= 1;
        }
        return res;
    }
}

掩码位运算

class Solution {
    // 5 的二进制表示是四位的 0 和 1 交替出现的
    private static final int MASK = 0x55555555;

    public int[] evenOddBit(int n) {
        return new int[]{Integer.bitCount(n & MASK), Integer.bitCount(n & ~MASK)};
    }
}

相关文章:

  • 阿里云ECS命名规则解析与规格选型实战指南
  • MySQL中 undolog和redolog区别
  • 《跟李沐学 AI》AlexNet论文逐段精读学习心得 | PyTorch 深度学习实战
  • RabbitMQ 消息队列
  • 蓝桥杯(B组)-每日一题(1093字符逆序)
  • Python 获取当前目录及上级目录
  • 类型系统下的语言分类与类型系统基础
  • 流行多模型对比分析
  • CPU与GPU之区别(The Difference between CPU and GPU)
  • 实战:功率分析仪3u3v测三相原理及接线
  • 金仓KDTS迁移工具启动报错kdts-app-console is already start, Please close it.
  • 【深度学习】手写数字识别任务
  • python读写各种格式文件
  • 中通云的容器化之旅:从单集群到多集群的演进
  • 第2章 深入理解Thread构造函数
  • 苍穹外卖知识点
  • 【Linux】HTTP:Cookie 和 Session 详解
  • tmux和vim的基本操作
  • 【Dubbo+Zookeeper】——SpringBoot+Dubbo+Zookeeper知识整合
  • 【蓝桥杯集训·每日一题2025】 AcWing 6134. 哞叫时间II python
  • 浙江官宣:五一假期,没电、没气、没油车辆全部免费拖离高速
  • 烟花、美食和购物优惠都安排上了,上海多区开启热闹模式
  • “麒麟王”亮相上海彩市,体彩即开票“瑞兽家族”迎来新成员
  • 历史新高!上海机场一季度营收增至31.72亿元,净利润增34%
  • 在循环往复的拍摄中,重新发现世界
  • 十四届全国人大常委会第十五次会议继续审议民营经济促进法草案