题目链接:3827. 统计单比特整数(简单)
算法原理:
解法:暴力枚举
15ms击败12.14%
时间复杂度O(Nlogn)
①遍历区间 [0, n] 中的每一个整数
②将每个整数转换为二进制字符串
③检查二进制字符串的所有字符是否与第一个字符完全相同
④统计满足条件的整数个数并返回
Java代码:
class Solution { public int countMonobit(int n) { int count=0; for(int i=0;i<=n;i++) if(check(i)) count++; return count; } private boolean check(int n){ String s=Integer.toBinaryString(n); for(int i=1;i<s.length();i++) if(s.charAt(i)!=s.charAt(0)) return false; return true; } }