剑指 Offer II 003. 前 n 个数字二进制中 1 的

2022-04-01  本文已影响0人  邦_

for循环。然后找转换成二进制的1

func countBits(_ n: Int) -> [Int] {

        
        var array :[Int] = Array()
        
        for i in 0...n {
            
            
            array.append(countBit(i));
        }
                    
        return array
    }
    
    
    func countBit(_ n: Int) -> Int {
        
        var temp = n
        var count = 0
        
        while temp > 0 {
            
            if temp % 2 == 1 {
                
                count += 1

            }
            
            temp /= 2
            
        }
            
        return count
        
    }










上一篇 下一篇

猜你喜欢

热点阅读