Leetcode记录: 476 数字的补数
解题思路:
这题的解题思路其实比较清晰,就是求二进制然后取反重新计算新数,可以直接在求解二进制的过程中直接得出最终的结果。
以下是C++代码:
1 | class Solution { |
单看这个可能问题已经解决了,但是题目中想让我们实现的位运算其实并没有做到,在看到一些大佬的题解后,其实还有更简单直接的方法。
1 | class Solution { |
这里的思路是:求出temp有多少位以后利用得出一个全1的c,再通过num^c(异或)就能得出最终结果,更符合题目的要求。
1 | C++运算符优先级参考:https://www.sojson.com/operation/cxx.html |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 风之歌!
评论