Swift.二进制中1的个数

cubegao 2015-07-05 PM 469℃ 0条
题目描述:输入一个整数,输出该数二进制表示中 1 的个数。
class For10Solution {
    func findOne(_ n: Int) -> Int {
        var s = n
        var count = 0
        
        while s != 0 {
            if s & 1 == 1 {
                count += 1
            }
            
            s = s>>1
        }
        
        return count
    }
    
    func findOne2(_ n: Int) -> Int {
        var s = n
        var count = 0
        
        while s != 0 {
            count += 1
            s = s & (s - 1)
        }
        
        return count
    }
}

算法思想:n&(n-1),该位运算去除 n 的位级表示中最低的那一位。

github地址:https://github.com/cubegao/LeetCode

标签: 算法

非特殊说明,本博所有文章均为博主原创。

评论啦~