LeetCode打卡第1天——Number Complement

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode打卡第1天——Number Complement相关的知识,希望对你有一定的参考价值。

题:

给定一个正整数,输出其补码。 补码策略是翻转其二进制表示的位。

Note:

  1. The given integer is guaranteed to fit within the range of a 32-bit signed integer.
  2. You could assume no leading zero bit in the integer’s binary representation.

 

第一次提交错误思路:将输入整数与二进制位为全1的数相异或。

错误原因,:输入整数和所设整数二进制位数不等,多出来的高位异或后全为1,导致返回结果错误。

第二次,用移位的方法计算出num的二进制位数i,用pow(2,i)-1求出一个二进制位数为i的且全为1的数,跟num进行异或运算,AC通过。

代码如下:

技术分享

 

接着用javascript写。

JavaScript的思路跟C一样,不过,要十分注意JavaScript中的pow()方法的调用是通过Math.pow()来实现的。其中,要特别注意Math的首字母大写这个问题,我提交的时候就犯了这个错误。

不多说,上代码:

技术分享

 

以上是关于LeetCode打卡第1天——Number Complement的主要内容,如果未能解决你的问题,请参考以下文章

js-leetcode前端动态规划第 3 天打卡「打家劫舍」,一个函数解决两个问题

leetcode 需要每天打卡,养成习惯

LeetCode动态规划入门(专项打卡21天合集)

LeetCode动态规划入门(专项打卡21天合集)

第132天学习打卡(ElasticSearch 仿京东搜索 )

第132天学习打卡(ElasticSearch 仿京东搜索 )