当前位置: 首页 > 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
  • 洛杉矶奥组委确认2028年奥运会和残奥会开闭幕式场地
  • 央行:全力推进一揽子金融政策加快落地
  • 长和获准出售巴拿马运河港口以外的港口?外交部:该报道没有依据
  • A股高开高走,三大股指涨超1.1%:两市成交1.3万亿元,近5000股收涨
  • 美权威人士批“特朗普对进口电影征关税”:将杀死美电影产业
  • 17家城商行去年年报盘点:西安银行营收增速领跑,青岛银行净利增速领跑