首页 > 其他分享 >力扣面试题 28 - 配对交换

力扣面试题 28 - 配对交换

时间:2024-12-02 11:34:08浏览次数:10  
标签:偶数 面试题 奇数 int 交换 示例 28 力扣 num

题目:

配对交换。编写程序,交换某个整数的奇数位和偶数位,尽量使用较少的指令(也就是说,位0与位1交换,位2与位3交换,以此类推)。

示例1:

 输入:num = 2(或者0b10)
 输出 1 (或者 0b01)

示例2:

 输入:num = 3
 输出:3

提示:

  1. num的范围在[0, 2^30 - 1]之间,不会发生整数溢出。

思路:

  1. 首先我们需要把奇数位和偶数位提取出来。我们可以使用二进制数101010....和010101....提取。这几个二进制数换成16进制会发生什么呢?答案刚好是0xaaaaaaaa,0x55555555。
  2. 将提取到的奇数位右移1位,偶数位左移一位。再将它俩相或,即得出答案。

C代码:(有史以来行数最少的题哈哈)

int exchangeBits(int num) {
    int odd_num = num & 0xaaaaaaaa;
    int even_num = num & 0x55555555;
    return (odd_num >> 1) | (even_num << 1);
}

标签:偶数,面试题,奇数,int,交换,示例,28,力扣,num
From: https://blog.csdn.net/chamao_/article/details/144183468

相关文章

  • 29道常见的Spring面试题
    1、什么是Spring框架?Spring框架有哪些主要模块?Spring框架是一个为Java应用程序的开发提供了综合、广泛的基础性支持的Java平台。Spring帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发。Spring框架本身亦是按照设计模式精心打造,这使得我们可以在开发环......
  • Java基础39道常见面试题及详细答案
    最近看到网上流传着,各种面试经验及面试题,往往都是一大堆技术题目贴上去,而没有答案。为此我业余时间整理了,Java基础常见的40道常见面试题,及详细答案,望各路大牛,发现不对的地方,不吝赐教,留言即可。八种基本数据类型的大小,以及他们的封装类引用数据类型Switch能否用string做参数e......
  • SQL面试题——日期交叉问题 合并日期重叠的活动
    日期交叉问题—合并日期重叠的活动今天的需求背景和前面我们的一个面试题目的背景一样,只不过是具体的需求变了,可以先看一下我们之前的文章SQL面试题——日期交叉问题计算活动的总天数+------+----------+----------+|id|stt|ett|+------+----------+......
  • 【二分查找】力扣 275. H 指数 II
    一、题目二、思路h指数是高引用引用次数,而citations数组中存储的就是不同论文被引用的次数,并且是按照升序排列的。也就是说h指数将整个citations数组分成了两部分,左半部分是不够引用h次的论文,右半部分论文的引用次数都是大于等于h的。因此,可以采用二分查找的......
  • 高级java每日一道面试题-2024年12月01日-JVM篇-你知道哪些JVM性能调优参数?
    如果有遗漏,评论区告诉我进行补充面试官:你知道哪些JVM性能调优参数?我回答:在Java高级面试中,JVM性能调优是一个非常重要的主题。了解JVM的性能调优参数可以帮助你更好地管理和优化应用程序的性能。以下是一些常见的JVM性能调优参数及其详细解释:1.堆内存相关参数-Xms......
  • 高级java每日一道面试题-2024年11月30日-JVM篇-Minor GC(年轻代GC)在什么时候发生?
    如果有遗漏,评论区告诉我进行补充面试官:MinorGC(年轻代GC)在什么时候发生?我回答:在Java高级面试中,关于MinorGC(也称为YoungGC或ScavengeGC)何时发生的问题,是一个重要的考点。以下是对MinorGC触发条件的详细解释:一、MinorGC的基本概念MinorGC是Java虚拟机(JVM)中一......
  • 消息中间件面试题之RocketMQ
    为什么使用消息队列?解耦、异步、削峰消息队列有什么优点和缺点?优点:解耦、异步、削峰缺点:系统的可用性降低、系统的复杂性提高了、一致性问题。RabbitMQ上的一个queue中存放的message是否有数量限制?限制是多少默认情况下一般是无限制,因为限制取决于机器的内存,但是消息过多会......
  • React高阶面试题目(六)
    React的formik库定义:Formik是一个用于在React应用程序中构建和处理表单数据的流行开源库。它提供了许多实用的组件和函数,使在React应用程序中处理表单数据变得更加轻松。优点:自动处理表单状态管理,无需手动编写大量的状态管理逻辑。提供了易于使用的表单验证工具,可以快......
  • String常见面试题
    第一题:打印的结果是true还是false呢?在之前我们就说过这题,执行s1时,检查字符串常量池,发现没有“abc”,于是创建“abc”,执行s2时,接着检查常量池,发现有“abc”,直接复用,所以s1和s2地址一致,打印出来是true第二题:trueorfalse1.主方法自动进栈,执行s1,双引号“abc”,检查常量池发现没......
  • 每日速记10道java面试题05
    其他面试题:每日速记10道java面试题01-CSDN博客每日速记10道java面试题02-CSDN博客每日速记10道java面试题03-CSDN博客每日速记10道java面试题04-CSDN博客目录1.请你说说java中hashmap的原理2.HashMap的put(key,value)和get(key)过程3.在使用hashmap时,有哪些提升性能......