LeetCode 868. 二进制间距(位运算)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 868. 二进制间距(位运算)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 解題
給定一個正整數 N,找到并返回 N 的二進制表示中兩個連續的 1 之間的最長距離。
如果沒有兩個連續的 1,返回 0 。
輸入:22 輸出:2 解釋: 22 的二進制是 0b10110 。 在 22 的二進制表示中,有三個 1,組成兩對連續的 1 。 第一對連續的 1 中,兩個 1 之間的距離為 2 。 第二對連續的 1 中,兩個 1 之間的距離為 1 。 答案取兩個距離之中最大的,也就是 2 。來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/binary-gap 著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。2. 解題
- 數字 N 和(1<<i)&操作,獲取為1的二進制位,存在數組里
- 遍歷數組,求 max(A[i+1]?A[i])max(A[i+1]-A[i])max(A[i+1]?A[i])
總結
以上是生活随笔為你收集整理的LeetCode 868. 二进制间距(位运算)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 389. 找不同(位运
- 下一篇: LeetCode 304. 二维区域和检