当前位置:网站首页>【Day_11 0506】求最大连续bit数
【Day_11 0506】求最大连续bit数
2022-08-01 17:40:00 【安河桥畔】
求最大连续bit数
题目来源
牛客网:求最大连续bit数
题目描述
求一个int类型数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1
数据范围:数据组数:1≤t≤5 ,1≤n≤500000
进阶:时间复杂度:O(logn) ,空间复杂度:O(1)
输入描述
输入一个int类型数字
输出描述
输出转成二进制之后连续1的个数
示例1
输入
200
输出
2
说明
200的二进制表示是11001000,最多有2个连续的1。
思路分析
- 求二进制的1,优先使用按位与的方法
- 和1按位与判断最低位是否为1,若为1则给计数器count自增,并与之前的最大值max比较,取两者较大的赋值给max,每次count自增后都要更新max的值,保证max始终保存的是最大值
- 如果中间出现一位不是1,那么连续便中断了,将计数器count置为0
- 每次相与后右移一位,判断下一位,直到输入的数为0
代码展示
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n = 0;
while (cin >> n)
{
int count = 0;
int max = 0;
while (n)
{
//和1相与,判断最低位是否为1
if ((n & 1) == 1)
{
count++;
if (count > max)
{
max = count;
}
}
//连续中断,count赋值为0
else
{
count = 0;
}
//每次将n右移一位
n >>= 1;
}
cout << max;
}
}
边栏推荐
- golang json returns null
- 【R语言】线性混合模型进行重复测量设计分析
- 08 Spark cluster construction
- Basic image processing in opencv
- 极化微波成像概述3
- 食品安全 | 新鲜食品vs速食食品,哪一种是你的菜?
- Are online account opening commissions reliable? Is online account opening safe?
- 2022年深圳市促进大健康产业集群高质量发展的若干措施
- Topology Parts Disassembly 3D Visualization Solution
- OnePlus 10RT appears on Geekbench, product launch also seems to be approaching
猜你喜欢
随机推荐
SQL函数 TO_CHAR(二)
金仓数据库 MySQL 至 KingbaseES 迁移最佳实践(2. 概述)
创造建材数字转型新视界,中建材如何多边赋能集团业务快速发展
关于2022年深圳市福田区支持高端服务业发展项目的申报通知
My new book has sold 10,000 copies!
统信软件、龙芯中科等四家企业共同发布《数字办公安全创新方案》
JumpServer堡垒机部署
块级元素、行内元素、行内块元素
小贝拉机器人是朋友_普渡科技召开新品发布会,新一代送餐机器人“贝拉”温暖登场...
存储日报-数据湖架构权威指南(使用 Iceberg 和 MinIO)
MySQL 45 讲 | 09 普通索引和唯一索引,应该怎么选择?
金仓数据库 OCCI迁移指南(2. 概述)
LeaRun.net快速开发动态表单
下载 | 谷歌科学家Kevin P. Murphy发布新书《概率机器学习:高级主题》
SQL的ROUND函数用法及其实例
B005 – 基于STC8的单片机智能路灯控制系统
C# LibUsbDotNet 在USB-CDC设备的上位机应用
【R语言】对图片进行裁剪 图片批量裁剪
02 es cluster construction
hcip第九天