LeetCode Number Complement
生活随笔
收集整理的這篇文章主要介紹了
LeetCode Number Complement
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原題鏈接在這里:https://leetcode.com/problems/number-complement/
題目:
Given a positive integer, output its complement number. The complement strategy is to flip the bits of its binary representation.
Note:
Example 1:
Input: 5 Output: 2 Explanation: The binary representation of 5 is 101 (no leading zero bits), and its complement is 010. So you need to output 2.Example 2:
Input: 1 Output: 0 Explanation: The binary representation of 1 is 1 (no leading zero bits), and its complement is 0. So you need to output 0.題解:
找到num最左面的1 bit, 從這個位置到最后是要flip的部分. template是從最左位置到最后到時1 bit.?
flip原來整體的num, 然后位運算 & template.
Time Complexity: O(1). Space: O(1).
AC Java:
1 public class Solution { 2 public int findComplement(int num) { 3 int template = (Integer.highestOneBit(num) << 1) - 1; 4 num = ~num; 5 return num & template; 6 } 7 }?
轉載于:https://www.cnblogs.com/Dylan-Java-NYC/p/6272363.html
總結
以上是生活随笔為你收集整理的LeetCode Number Complement的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第25天多线程、网络编程
- 下一篇: IntelliJ IDEA16 热部署,