【简单】1009. 十进制整数的反码(常规法+位运算法)

LeetCode 1009. 十进制整数的反码(详细技术解析) 本文详细解析了LeetCode 1009题"十进制整数的反码"的解题方法。题目要求将给定非负整数的二进制表示进行反码转换后返回对应的十进制数。核心思路是通过计算数字的有效二进制位数,构造全1掩码,利用异或运算实现位翻转。文章提供了Python代码实现,包含边界处理、有效位数计算和位运算应用,并分析了时间复杂度和空间复杂度。此外,还指出了常见误区,如直接取反会导致负数结果等问题,强调需精确处理有效位。通过示例验证和测试用例,确保解决方案的正确性和健壮性。 阅读详情

【题目】
每个非负整数 N 都有其二进制表示。例如, 5 可以被表示为二进制 “101”,11 可以用二进制 “1011” 表示,依此类推。注意,除 N = 0 外,任何二进制表示中都不含前导零。二进制的反码表示是将每个 1 改为 0 且每个 0 变为 1。例如,二进制数 “101” 的二进制反码为 “010”。给你一个十进制数 N,请你返回其二进制表示的反码所对应的十进制整数
来源:leetcode
链接:https://leetcode-cn.com/problems/complement-of-base-10-integer/
【示例】
输入:5
输出:2
解释:5 的二进制表示为 “101”,其二进制反码为 “010”,也就是十进制中的 2 。
【示例2】
输入:7
输出:0
解释:7 的二进制表示为 “111”,其二进制反码为 “000”,也就是十进制中的 0
【示例3】
输入:10
输出:5
解释:10 的二进制表示为 “1010”,其二进制反码为 “0101”,也就是十进制中的 5
【代码】
执行用时 :0 ms, 在所有 C++ 提交中击败了100.00% 的用户
内存消耗 :6.1 MB, 在所有 C++ 提交中击败了100.00%的用户

class Solution {
public:
    int bitwiseComplement(int N) {
        if(N==0)
            return 1;
        int rs=0;
        stack<int> s;
        while(N){
            s.push(!(N%2));
            N/=2;
        }
        while(!s.empty()){
            rs=rs*2+s.top();
            s.pop();
        }
        return rs;
    }
};

【位运算】

class Solution {
public:
    int bitwiseComplement(int N) {
        if (N==0)
            return 1;
        int n=N;
        int key=0;
        while (n){
            n>>=1;
            key<<=1;
            key+=1;
        }
        return key^N;
    }
};
华为防火墙双ISP出口实战:如何用策略路由实现电信联通流量自动切换(附配置截图) 本文详细解析了华为防火墙在双ISP环境下的智能选路技术,通过策略路由与健康检测的深度应用,实现电信联通流量的自动切换。文章包含实战配置截图,帮助企业解决切换延迟、路径劣化等核心挑战,提升业务连续性。 阅读详情

相关推荐

海康威视门禁考勤设备数据对接实战:从被动推送到主动拉取

本文深入探讨了海康威视门禁考勤设备数据对接的两种核心方案:HTTP推送与SDK主动拉取。文章对比了两种方式的适用场景、技术实现与优缺点,为开发者提供了从设备配置、代码编写到工程化部署的完整实战指南,帮助读者根据项目规模、网络环境及数据稳定性要求,做出最合适的技术选型。

weixin_29284657的博客 673

十进制的反码

每个非负整数N都有其二进制表示。例如,5可以被表示为二进制"101",11 可以用二进制"1011"表示,依此类推。注意,除N = 0外,任何二进制表示中都不含前导零。 二进制的反码表示是将每个1改为0且每个0变为1。例如,二进制数"101"的二进制反码为"010"。 给你一个十进制数N,请你返回其二进制表示的反码所对应的十进制整数。 示例 1: 输入:5 输出:2 解释:5 的二进制表示为 "101",其二进制反码为 "010",也就是十进制中的 2 ...

Nnnn的博客 3548

Unity开发HoloLens应用:从打包到部署的完整指南

本文为Unity开发者提供了将应用部署到HoloLens设备的完整实战指南。详细讲解了从环境准备、Unity项目配置、生成Visual Studio工程,到最终构建APPX安装包并通过设备门户或Visual Studio进行部署的全流程,帮助开发者高效完成混合现实应用的打包与安装。

red88的博客 1020

十进制数的反码

题目来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/complement-of-base-10-integer 每个非负整数 N 都有其二进制表示。例如, 5 可以被表示为二进制 “101”,11 可以用二进制 “1011” 表示,依此类推。注意,除 N = 0 外,任何二进制表示中都不含前导零。 二进制的反码表示是将每个 1 改为 0 且每个 0 变为 1。例如,二进制数 “101” 的二进制反码为 “010”。 给你一个十进制数 N,请你返回其二进

weixin_38697817的博客 2591

四阶龙格库塔法求解一次常微分方程组(python实现)

之前在博客发布了关于使用四阶龙格库塔方法求解一次常微分方程组的文章,由于代码缺少具体的验证,部分朋友可能存在疑问,因此这里打算再重新写一篇博客来验证一下程序的正确性,另外,这里是使用python语言来实现的。

HelloWorldTM的博客 8543

STM32--LoRa通信模块

模块根据MD0的配置与AUX引脚的状态会进入不同的功能其中在通信功能下,包含4种工作模式。

qq_47258284的博客 1万+

关于整数的原码,反码,补码

简要 原码:即我们将十进制数字转换为二进制后的数字为原码 反码:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外. 补码:正数的补码与其原码相同;负数的补码是在其反码的末位加1. 举个例子: 用8位二进制表示(按道理说int型数据用32位比特位表示,但是通常网上都是只要8位够表示就可以用8位表示,所以这里用8位表示) 正数: 十进制:11 原码: 0000 1011(即二进制形式...

Mr.yang的博客 7126

Vue3实战:集成bpmn-js与Activiti工作流引擎的完整指南

本文详细介绍了如何在Vue3项目中集成bpmn-js流程图编辑器与Activiti工作流引擎,构建一个完整的前端流程设计器。文章重点解析了Vue3响应式系统与bpmn-js集成的核心陷阱及解决方案,并提供了属性面板配置、XML命名空间适配、撤销重做等实用功能的完整实现指南,帮助开发者高效完成工作流系统的前端开发。

weixin_29009881的博客 213

【原创】巧解十进制整数的反码问题

问题: 每个非负整数 N 都有其二进制表示。例如, 5 可以被表示为二进制 “101”,11 可以用二进制 “1011” 表示,依此类推。注意,除 N = 0 外,任何二进制表示中都不含前导零。 二进制的反码表示是将每个 1 改为 0 且每个 0 变为 1。例如,二进制数 “101” 的二进制反码为 “010”。 给定十进制数 N,返回其二进制表示的反码所对应的十进制整数。 数字范围 0 &lt;...

terrygmx的博客 1581

Codesys 3.5报警功能配置保姆级教程:从变量定义到确认方式(含REF/ACK详解)

本文详细介绍了Codesys 3.5报警功能的配置流程,从变量定义到确认方式的选择,特别解析了REF和ACK两种确认方式的底层逻辑。通过实战案例和代码示例,帮助工程师快速掌握报警系统的搭建与调试技巧,提升工业自动化项目的可靠性。

weixin_29245767的博客 458

【寄存器模型】二、前门访问与后门访问

1.后门访问可以更好的完成前门访问能够完成的事情:后门访问不消耗仿真时间,且消耗的运行时间也远小于前门访问的运行时间。 2.后门访问可以完成前门访问不能完成的事:对于某些特定的场景,如网络通信系统中的一些只读计数器,当要验证计数器进位归零的场景时,前门访问无法完成写寄存器操作,只能通过消耗仿真时间来使计数器到达特定的计数值。而后门访问可以直接对只读寄存器赋一个初值......

carrotbanana的博客 9658

整数的原码、反码、补码、移码

计算机再存储一个数时是已二进制的方式存储的,并且第一个作为符号位(0代表正数,1代表负数) 例: byte temp = 3; 3表示为:00000011 对于一个正数来说,原码、反码、补码是相同的,移码为补码的符号位取反 例: 元素:+3 原码:00000011 反码:00000011 补码:00000011 移码:10000011 对于一个负数来说,原码, 反码为原码不带符号位的取反, 补码为其反码加1, 移码为补码的符号位取反 例: 元素:-3 原码:10000011 反码:11111100 补码:1

一个对Java“一往情深”的后端程序员,对Java生态体系有着浓厚的兴趣与持续的研究。当我不在Java里“内卷”时,我也会探出头来,看看Web技术的广阔天地。希望通过这个博客,与所有同行交流切磋,共同进步。 3672

luks-磁盘加密工具

linux磁盘加密配置工具及步骤详解

zdd56789的博客 123

1009 十进制整数的反码 leetcode

每个非负整数 N 都有其二进制表示。例如, 5 可以被表示为二进制 “101”,11 可以用二进制 “1011” 表示,依此类推。注意,除 N = 0 外,任何二进制表示中都不含前导零。 二进制的反码表示是将每个 1 改为 0 且每个 0 变为 1。例如,二进制数 “101” 的二进制反码为 “010”。 给定十进制数 N,返回其二进制表示的反码所对应的十进制整数。 示例 1: 输入:5 输出:2...

qq_44969643的博客 3630

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

1009. 十进制整数的反码

1009.十进制整数的反码 每个非负整数N都有其二进制表示。例如,5可以被表示为二进制"101",11可以用二进制"1011"表示,依此类推。注意,除N = 0外,任何二进制表示中都不含前导零。 二进制的反码表示是将每个1改为0且每个0变为1。例如,二进制数"101"的二进制反码为"010"。 给定十进制数N,返回其二进制表示的反码所对应的十进制整...

link-P 729

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Leetcode——1009.十进制整数的反码——题解+代码实现

一、题目 每个非负整数N都有其二进制表示。例如,5可以被表示为二进制"101",11可以用二进制"1011"表示,依此类推。注意,除N = 0外,任何二进制表示中都不含前导零。 二进制的反码表示是将每个1改为0且每个0变为1。例如,二进制数"101"的二进制反码为"010"。 给定十进制数N,返回其二进制表示的反码所对应的十进制整数。 示例 1: ...

鬼刀 613

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

LeetCode 1009. 十进制整数的反码

原文链接: LeetCode 1009. 十进制整数的反码 ...

阿豪 166

leetcode 算法题1009 (简单265) 十进制整数的反码

leetcode 算法题1009 (简单265) 十进制整数的反码 题目介绍 每个非负整数 N 都有其二进制表示。 例如, 5 可以被表示为二进制 "101",11 可以用二进制 "1011" 表示,依此类推。注意,除 N = 0 外,任何二进制表示中都不含前导零。 二进制的反码表示是将每个 1...

FYuu95100的博客 329

C++Leetcode1009. 十进制整数的反码

题目 每个非负整数 N 都有其二进制表示。例如, 5 可以被表示为二进制 “101”,11 可以用二进制 “1011” 表示,依此类推。注意,除 N = 0 外,任何二进制表示中都不含前导零。 二进制的反码表示是将每个 1 改为 0 且每个 0 变为 1。例如,二进制数 “101” 的二进制反码为 “010”。 给定十进制数 N,返回其二进制表示的反码所对应的十进制整数。 示例 1: 输入:5 输...

weixin_43434305的博客 550

LeetCode刷题之1009. 十进制整数的反码

LeetCode刷题之1009. 十进制整数的反码 我不知道将去向何方,但我已在路上! 时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! 题目: 每个非负整数 N 都有其二进制表示。例如, 5 可以被表示为二进制 “101”,11 可以用二进制 “1011” 表示,依此类推。注意,除 N = 0 外,任何二进制表示中都不含前导零。二进制的反码表示是将每个 1 改为 0 且每个 0 变为 1。例如,二进制数 “101” 的二进制反码为 “010”。给定十

胡萝卜 305

LeetCode 1009. 十进制整数的反码(C++、python)

每个非负整数N都有其二进制表示。例如,5可以被表示为二进制"101",11可以用二进制"1011"表示,依此类推。注意,除N = 0外,任何二进制表示中都不含前导零。 二进制的反码表示是将每个1改为0且每个0变为1。例如,二进制数"101"的二进制反码为"010"。 给定十进制数N,返回其二进制表示的反码所对应的十进制整数。 示例 1: 输...

qq_27060423的博客 589

LeetCode(1009)——十进制整数的反码(JavaScript)

每个非负整数 N 都有其二进制表示。例如, 5 可以被表示为二进制"101",11可以用二进制"1011" 表示,依此类推。注意,除N = 0 外,任何二进制表示中都不含前导零。 二进制的反码表示是将每个 1 改为 0 且每个 0 变为 1。例如,二进制数"101" 的二进制反码为"010"。 给定十进制数 N,返回其二进制表示的反码所对应的十进制整数。 示例1: 输入:5 输出:2 解释:5 ...

瓜冬瓜的博客 378

LeetCode-Python-1009. 十进制整数的反码

每个非负整数 N 都有其二进制表示。例如, 5 可以被表示为二进制 "101",11 可以用二进制 "1011" 表示,依此类推。注意,除 N = 0 外,任何二进制表示中都不含前导零。 二进制的反码表示是将每个 1 改为 0 且每个 0 变为 1。例如,二进制数 "101" 的二进制反码为 "010"。 给定十进制数 N,返回其二进制表示的反码所对应的十进制整数。 示例 1: 输入...

Keep Coding 816

1009 十进制整数的反码

题目描述: 每个非负整数 N 都有其二进制表示。例如, 5 可以被表示为二进制 “101”,11 可以用二进制 “1011” 表示,依此类推。注意,除 N = 0 外,任何二进制表示中都不含前导零。 二进制的反码表示是将每个 1 改为 0 且每个 0 变为 1。例如,二进制数 “101” 的二进制反码为 “010”。 给你一个十进制数 N,请你返回其二进制表示的反码所对应的十进制整数。 示例 1: 输入:5 输出:2 解释:5 的二进制表示为 “101”,其二进制反码为 “010”,也就是十进制中的 2 。

weixin_44171872的博客 233

[LeetCode] 1009. 十进制整数的反码

1 题目描述 每个非负整数 N 都有其二进制表示。例如, 5 可以被表示为二进制 “101”,11 可以用二进制 “1011” 表示,依此类推。注意,除 N = 0 外,任何二进制表示中都不含前导零。 二进制的反码表示是将每个 1 改为 0 且每个 0 变为 1。例如,二进制数 “101” 的二进制反码为 “010”。 给定十进制数 N,返回其二进制表示的反码所对应的十进制整数。 示例 1: 输...

努力变得不菜的菜鸡的博客 350

[Leetcode]1009十进制整数的反码

题目描述 每个非负整数 N 都有其二进制表示。例如, 5 可以被表示为二进制 “101”,11 可以用二进制 “1011” 表示,依此类推。注意,除 N = 0 外,任何二进制表示中都不含前导零。 二进制的反码表示是将每个 1 改为 0 且每个 0 变为 1。例如,二进制数 “101” 的二进制反码为 “010”。 给你一个十进制数 N,请你返回其二进制表示的反码所对应的十进制整数。 示例 1: ...

qdf666 257
上一篇: 【简单】824. 山羊拉丁文
下一篇: 【简单】283. 移动零
菜菜2022
博客等级 码龄9年 67粉丝 1033原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值