20190903:(leetcode习题)颠倒二进制位
颠倒二进制位
- 题目
- 大致思路
- 代码实现
题目
大致思路
- 思路一:将该数与1,10,100… 等32个数做异或运算,判断对应二进制数每一位的数字是0还是1,然后将其存入数组res,最后乘以对应的幂次,即可得到转换后的值。
- 思路二:将上述思路一步到位,直接计算到res的对应位置上。
代码实现
package com.immunize.leetcode.reverseBits;public class reverseBits {// 直接计算其反转后的二进制数,注意幂次不要乘错public static int reverseBits(int n) {int count = 0;for (int i = 31; i >= 0; i--) {count = (n >>> i & 1) << (31 - i) | count;}return count;}// 常规思路:将这32位数,分别与1异或运算,如果不为0,则res中对应32-i位数字为1,依次推算出最终的res数组,最后乘以2的i次幂即可。public static int reverseBits2(int n) {int[] re = new int[32];int flag = 1;int index = 31;// 如果用int可能存在溢出问题long result = 0;while (flag != 0) {if ((flag & n) != 0) {re[index] = 1;}flag = flag << 1;index--;}for (int i = 31; i >= 0; i--) {result += re[i] * Math.pow(2, i);}return (int) result;}public static void main(String[] args) {System.out.println(reverseBits(43261596));System.out.println(reverseBits2(43261596));}}
20190903:(leetcode习题)颠倒二进制位相关推荐
- leetcode#190 颠倒二进制位
leetcode#190 颠倒二进制位 题目: 颠倒给定的 32 位无符号整数的二进制位. 示例: 输入: 00000010100101000001111010011100 输出: 001110010 ...
- java二进制反转_Java实现 LeetCode 190 颠倒二进制位
190. 颠倒二进制位 颠倒给定的 32 位无符号整数的二进制位. 示例 1: 输入: 00000010100101000001111010011100 输出: 0011100101111000001 ...
- leetcode 190. 颠倒二进制位(位运算)
颠倒给定的 32 位无符号整数的二进制位. 提示: 请注意,在某些语言(如 Java)中,没有无符号整数类型.在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有 ...
- leetcode 190. 颠倒二进制位
颠倒给定的 32 位无符号整数的二进制位. 示例 1: 输入: 00000010100101000001111010011100 输出: 0011100101111000001010010100000 ...
- Leetcode 190. 颠倒二进制位 解题思路及C++实现
解题思路: 使用移位运算和与运算,将32位二进制数n中的每一位取出来,然后将取出的0或1相应地进行右移操作,最终加和得到结果. 下面的程序中,循环执行32次,每一次循环,得到n的第 i 位数,即 通过 ...
- [leetcode]190. 颠倒二进制位
class Solution {public:uint32_t reverseBits(uint32_t n) {bitset<32>temp(n); //左边是低位,temp[0]是二进 ...
- 【Leetcode】[190] 颠倒二进制位
[Leetcode][190] 颠倒二进制位 Author: Xin Pan Date: 2022.3.13 题目 原题链接 颠倒给定的 32 位无符号整数的二进制位. 解法 考虑使用位运算来做,因为 ...
- JVAV学习小练习(一)之leetcode习题之接雨水
leetcode习题之接雨水 一.题目描述 给你一个 m x n 的矩阵,其中的值均为非负整数,代表二维高度图每个单元的高度,请计算图中形状最多能接多少体积的雨水.(图片是从leetcode拉过来的) ...
- 【LeetCode】190. 颠倒二进制位 easy / bitset / stoul
简单题现在目标25分钟吧:中等题一个小时吧. 重点:input: 无符号整型,output: 无符号整型. 颠倒:是指首位颠倒,而不是01颠倒 stoul(str, nullptr, 2) 第三个参数 ...
最新文章
- php 取出多重数组中的一列_PHP获取数组中指定的一列实例
- 构造方法的调用顺序和成员变量的初始化时机以及动态绑定
- 信息抽取--关键词提取
- android studio windows,AndroidStudio的使用(Windows)
- hexo-Fluid主题使用手册
- linux messages日志为空,自定义linux系统日志格式(messages,cron,ssh等日志格式)
- PHPer 面试指南-扩展阅读资源整理
- HDU1813:Escape from Tetris(IDA)
- 单身税的时代就要来临,你还没有用Python帮你找一个女朋友吗?
- shiro 不过滤指定的带参数url_原创干货 | 过滤器设计缺陷导致权限绕过
- Java基础篇:重新温习不一样的数组
- python折线图实线虚线_python – matplotlib中的虚线而不是缺失值
- 软件测试网上订餐系统,星月外卖网上订餐系统软件测试报告(正式).doc
- 2020年ESA中国区10m地表覆盖数据的镶嵌、裁剪与分省数据分享
- 【论文精读】Robust Alignment for Panoramic Stitching Via an Exact Rank Constraint
- 用 JavaScript 和 HTML 制作一个计算器
- 服务器摆放需要预留U位么_办公沙发摆放有何讲究?
- 计算机教室布置软木,软木照片墙布置,让孩子体验手工的乐趣
- 白硕:区块链技术与数据隐私(附视频)
- Java WEB开发须知知识点---概况篇