剑指OfferII003.前n个数字二进制中1的个数-创新互联
题目
代码
学习
网站名称:剑指OfferII003.前n个数字二进制中1的个数-创新互联
当前地址:http://scyanting.com/article/dsgsoj.html
给定一个非负整数 n ,请计算 0 到 n 之间的每个数字的二进制表示中 1 的个数,并输出一个数组。
十年的盐边网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销的优势是能够根据用户设备显示端的尺寸不同,自动调整盐边建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联建站从事“盐边网站设计”,“盐边网站推广”以来,每个客户项目都认真落实执行。示例:
- 输入: n = 2
输出: [0,1,1]
解释:
0 -->0
1 -->1
2 -->10
代码
思路:先将每个数字转变为二进制,然后定义一个函数count1计算string中1的个数.
class Solution {public int[] countBits(int n) {int[] out = new int[n+1];
for(int i=0; iString num = Integer.toBinaryString(i);
out[i] = count1(num);
// System.out.println(out[i]);
}
return out;
}
public int count1(String x){System.out.println(x);
int out=0;
for(int i=0; ichar mid = x.charAt(i);
System.out.println(mid);
if (mid == '1'){out ++;
}
}
return out;
}
}
学习
- Java中的进制转换
十进制转二进制 (n为十进制数)
String s=Integer.toBinaryString(n);
十进制转八进制(n为十进制数)
String s=Integer.toOctalString(n);
十进制转十六进制(n为十进制数)
String s=Integer.toHexString(n);
十进制转任何进制(n为十进制数)
String s=Integer.toString(int n,int r);//转化为 r 进制,r 的范围[2,36]
任何进制转十进制
int n=Integer.parseInt(String s,int r);//将 r 进制的字符串 s 转化为十进制
2.string类用法
s.length() 返回长度
s.charAt(i) 返回第i处的char,注意别和python中s[i]搞混
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
网站名称:剑指OfferII003.前n个数字二进制中1的个数-创新互联
当前地址:http://scyanting.com/article/dsgsoj.html